百度地图开放平台wgs84,gcj02转bd09

百度地图开放平台wgs84,gcj02转bd09

百度地图开放平台wgs84,gcj02转bd09开局一张图,故事全靠编,上图是上海市257个地铁站bd09坐标和wgs84坐标的差距,可以看到bd09较wgs84往右上角偏一点。

坐标转换这个是个大型工程问题,主要涉及到wgs84坐标系,gcj02坐标系和bd09坐标系三个坐标系的问题,初中老师告诉我们,遇到麻烦的大问题,要记得分步解决,因为判卷老师是分步给分的,今天主要讲一下从wgs84转bd09的问题,所有的转换均是指转换实例。你可以网上一搜,一大把的算法,但是极少会给出算法评估,因为这关乎三个问题
1,你原始的wgs84,bd09坐标是否真实
2,转换的算法是否可靠
3,转换回去能否再次重合
围绕这三个问题,私下觉得百度官方给出的将其他坐标转为百度坐标的算法是可靠的,因为人家百度搞一套东西,再给你一套转化算法,没必要转成和自己不一样的呀,这里给出百度地图开放平台wgs84转bd09的算法,严格说来,仅是在线的接口程序

完整代码
# -*- coding: utf-8 -*-
"""
project_name:wgs84_to_bd09
@author: 帅帅de三叔
Created on Sun Jan 19 17:30:15 2020
"""
import csv
import requests #导入请求模块
import pandas as pd #导入数据处理模块
data=pd.read_csv("wgs84.csv",index_col='id',encoding='ANSI') #读取数据
wgs84_lng=data['wgs84_lng'] #wgs84经度
wgs84_lat=data['wgs84_lat'] #wgs84纬度

def wgs84_to_bd09(data): #定义wgs84转bd09坐标函数
    path="bd09.csv" #当前路径下新建一个等时圈csv文件
    with open(path,"w+",newline='') as csv_file: #打开文件,追加
        writer=csv.writer(csv_file) 
        header=["bd09_lng","bd09_lat"] #构造表头
        writer.writerow(header) #先写入表头
        for i in range(len(data)):      
            data=str(wgs84_lng[i])+','+str(wgs84_lat[i])
            url='http://api.map.baidu.com/geoconv/v1/?coords='+data+'&from=1&to=5&output=json'+'&ak=您的AK'
            response = requests.get(url) #发出请求
            answer=response.json() #json化
            if answer['status']==0:
                bd09_lng=answer['result'][0]['x']
                bd09_lat=answer['result'][0]['y']
                data_row=[bd09_lng,bd09_lat]
                writer.writerow(data_row) #写入csv
        csv_file.close()  #关闭csv文件
if __name__=="__main__":
    wgs84_to_bd09(data)
代码解读

1,读取wgs84文件数据,这里我的encoding="ANSI"是因为csv打开的时候方便查看,如果你不想这种用Notepad++转码过去便是。
2,请求url中您的AK是你自己要去百度地图开放平台申请的,url里面的from和to很关键,意味着你要从哪里到哪里,比如我这里from=1,to=5表示从wgs84到bd09,如果from=3,to=5表示从gcj02到bd09。其中to的值只能为5。
3,把请求回来的百度经度,百度纬度保存到csv文件里。

参考文献

1,https://www.cnblogs.com/arxive/p/6103358.html?utm_source=itdadao&utm_medium=referral
2,https://kongxz.com/2013/10/wgs-cgj/
3,scipy模块
4,http://wandergis.com/coordtransform/
5,已知不可逆的坐标转换算法,通过结果进行反算的方法?
6,百度地图开放平台之坐标转换
7,wgs84转gcj02

百度地图开放平台wgs84,gcj02转bd09

上一篇:ThreeJS源码学习9Pass


下一篇:网络坐标纠偏心得分享