百度高德坐标系相互转换

一、百度与高德坐标系互换

百度坐标系:bd09

高德坐标系: gcj02

python 复制代码
import math


# 坐标系转换:百度转高德,高德转百度
class CoordinateSystem:
    @staticmethod
    def bd09_to_gcj02(bd_lon, bd_lat):
        '''
        百度坐标系:bd09  转成高德坐标系 gcj02
        Args:
            bd_lon: 百度坐标系纬度
            bd_lat: 百度坐标系经度
        Return:
            (高德坐标系纬度,高德坐标系经度)
        '''
        bd_lon = float(bd_lon)
        bd_lat = float(bd_lat)
        x = bd_lon - 0.0065
        y = bd_lat - 0.006
        z = math.sqrt(x * x + y * y) - 0.00002 * math.sin(y * math.pi)
        theta = math.atan2(y, x) - 0.000003 * math.cos(x * math.pi)
        gcj_lon = z * math.cos(theta)
        gcj_lat = z * math.sin(theta)
        return gcj_lon, gcj_lat

    @staticmethod
    def gcj02_to_bd09(lon, lat):
        '''
        高德坐标系:gcj02   转成高德坐标系 bd09
        Args:
            lon: 高德坐标系纬度
            lat: 高德坐标系经度
        Return:
            (高德坐标系纬度,高德坐标系经度)
        '''
        lon = float(lon)
        lat = float(lat)
        z = math.sqrt(lon * lon + lat * lat) + 0.00002 * math.sin(lat * math.pi)
        theta = math.atan2(lat, lon) + 0.000003 * math.cos(lon * math.pi)
        bd_lon = z * math.cos(theta) + 0.0065
        bd_lat = z * math.sin(theta) + 0.006
        return bd_lon, bd_lat

if __name__ == '__main__':
    lon = 23.0534260666666
    lat = 113.40712125
    gd_lob,gd_lat = CoordinateSystem.bd09_to_gcj02(bd_lon=lon,bd_lat=lat)
相关推荐
兔子小灰灰43 分钟前
jetson安装pytorch
人工智能·pytorch·python
Swizard1 小时前
拒绝“裸奔”上线:FastAPI + Pytest 自动化测试实战指南
python
Ven%3 小时前
从单轮问答到连贯对话:RAG多轮对话技术详解
人工智能·python·深度学习·神经网络·算法
谈笑也风生3 小时前
经典算法题型之复数乘法(二)
开发语言·python·算法
先知后行。3 小时前
python的类
开发语言·python
dyxal3 小时前
Python包导入终极指南:子文件如何成功调用父目录模块
开发语言·python
nnerddboy3 小时前
解决传统特征波段选择的不可解释性:2. SHAP和LIME
python·机器学习
电商API&Tina3 小时前
【电商API接口】关于电商数据采集相关行业
java·python·oracle·django·sqlite·json·php
weixin_421585014 小时前
解释代码:val_pred = vxm_model.predict(val_input)--与tensor对比
python
xwill*4 小时前
python 字符串拼接
linux·windows·python