百度高德坐标系相互转换

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

百度坐标系: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)
相关推荐
【建模先锋】1 小时前
Python电能质量扰动信号分类(四)基于CNN-BiLSTM的一维信号分类模型
python·分类·cnn
JOYCE_Leo161 小时前
深度学习500问——Chapter14:超参数调整(3)
人工智能·python·rnn·深度学习·计算机视觉
985小水博一枚呀1 小时前
【AI视觉平台搭建】概况了解
人工智能·python·深度学习·神经网络·计算机视觉·分类
T0uken1 小时前
【GIS】GeoPandas:Python矢量数据处理
python·arcgis
杰哥在此1 小时前
Python知识点:如何使用Python与.NET进行互操作(IronPython)
开发语言·python·面试·.net·编程
方世恩1 小时前
【深度学习】(3)--损失函数
人工智能·python·深度学习·神经网络·算法·卷积神经网络
浊酒南街2 小时前
plt常用函数介绍一
python·机器学习·matplotlib
青丝不压头颅2 小时前
Flask学习之项目搭建
python·学习·flask
hakesashou3 小时前
python如何匹配换行符
java·服务器·python