zoukankan      html  css  js  c++  java
  • 如何根据经纬度计算地面上某点在XYZ空间直角坐标系中的坐标

    如何根据经纬度计算地面上某点在XYZ空间直角坐标系中的坐标

    /**
         * @param r: number 到地心的距离
         * @param lon: number 经度
         * @param lat: number 纬度
         * @return {[number, number, number]}
         */
        getXYZByLonLat = (r, lon, lat) => {
            const {sin, cos, PI} = Math;
            const lonRadian = lon / 180 * PI;
            const latRadian = lat / 180 * PI;
    
            const y = r * sin(latRadian); // 在经线圈平面上, 计算y
    
            const rOnEquatorialPlane = r * cos(latRadian); // 在赤道面上, 计算r的投影距离
            const x = rOnEquatorialPlane * sin(lonRadian); // 在俯视图中, 计算x
            const z = rOnEquatorialPlane * cos(lonRadian); // 在俯视图中, 计算z
    
            /**
             x = R * cos(lat) * sin(lon)
             y = R * sin(lat)
             z = R * cos(lat) * cos(lon)
             */
            return [x, y, z];
        };
    
  • 相关阅读:
    leetcode 137
    leetcode 134
    133. Clone Graph
    leetcode 131
    leetcode 130
    mac uwsgi ssl issue handler
    leetcode 85 Maximal Rectangle golang
    leetcode 84 golang
    leetcode 61
    C# 后台实现一次上传多个文件
  • 原文地址:https://www.cnblogs.com/forzhaokang/p/14700991.html
Copyright © 2011-2022 走看看