栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python ECEF转GPS

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python ECEF转GPS

python ECEF转GPS
  • 代码如下:
def ecef2gps(point_3d):
    # pyproj库函数
    # ecef = pyproj.Proj(proj='geocent', ellps='WGS84', datum='WGS84')
    # lla = pyproj.Proj(proj='latlong', ellps='WGS84', datum='WGS84')
    # lon, lat, alt = pyproj.transform(ecef, lla, point_3d[0], point_3d[1], point_3d[2], radians=False)

    # 公式计算
    WGS84_A = 6378137.0
    WGS84_E = 0.0818191908

    b = (WGS84_A * WGS84_A * (1 - WGS84_E * WGS84_E))  ** 0.5
    ep = ((WGS84_A * WGS84_A - b * b) / (b * b)) ** 0.5
    p = math.hypot(point_3d[0], point_3d[1])
    th = math.atan2(WGS84_A * point_3d[2], b * p)
    lon = math.atan2(point_3d[1], point_3d[0])
    lat = math.atan2((point_3d[2] + ep * ep * b * (math.sin(th) **3 )), (p - WGS84_E * WGS84_E * WGS84_A * (math.cos(th) ** 3)))
    N = WGS84_A / ((1 - WGS84_E * WGS84_E * math.sin(lat) * math.sin(lat)) ** 0.5)
    alt = p / math.cos(lat) - N
    lat = RAD2DEG(lat)
    lon = RAD2DEG(lon)

    print('--------------------gps---------------------')
    print(lat,lon,alt)
    print('--------------------------------------------')

    return lat,lon,alt

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/280538.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号