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];
        };
    
  • 相关阅读:
    30-JDBC(2)
    29-JDBC(1)
    27-网络编程
    26-IO(中)
    git push 报错
    IsEmpty和isBlank区别
    java.lang.NumberFormatException: For input string: "0.9"
    Integer与Double类型转换
    Lambda 表达式排序
    Number & Math 类方法
  • 原文地址:https://www.cnblogs.com/forzhaokang/p/14700991.html
Copyright © 2011-2022 走看看