百度高德坐标系相互转换

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

百度坐标系: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 小时前
selenium基础知识 和 模拟登录selenium版本
爬虫·python·selenium·爬虫模拟登录
19891 小时前
【零基础学AI】第26讲:循环神经网络(RNN)与LSTM - 文本生成
人工智能·python·rnn·神经网络·机器学习·tensorflow·lstm
JavaEdge在掘金1 小时前
Redis 数据倾斜?别慌!从成因到解决方案,一文帮你搞定
python
ansurfen1 小时前
我的第一个AI项目:从零搭建RAG知识库的踩坑之旅
python·llm
前端付豪1 小时前
20、用 Python + API 打造终端天气预报工具(支持城市查询、天气图标、美化输出🧊
后端·python
前端付豪2 小时前
19、用 Python + OpenAI 构建一个命令行 AI 问答助手
后端·python
amazinging2 小时前
北京-4年功能测试2年空窗-报培训班学测开-第四十三天
python·学习
wgyang20163 小时前
我的第一个LangFlow工作流——复读机
python
Zhen (Evan) Wang3 小时前
(豆包)xgb.XGBRegressor 如何进行参数调优
开发语言·python
我爱一条柴ya3 小时前
【AI大模型】线性回归:经典算法的深度解析与实战指南
人工智能·python·算法·ai·ai编程