利用百度地圖坐標轉換API實現gcj02轉bd09

百度地圖坐標轉換API

功能

將常用的非百度坐標轉換成百度地圖中使用的坐標,如:GPS設備獲取的坐標、google地圖坐標、soso地圖坐標、amap地圖坐標、mapbar地圖坐標等

特點

  1. 以HTTP形式提供坐標轉換服務
  2. 支持批量坐標轉化,一次最多可轉換100個坐標點。
  3. 轉化后的坐標可以在百度地圖JavaScript API、車聯網API、靜態圖API、web服務API等產品中使用

服務地址

服務參數說明

返回值說明

狀態碼說明

使用Python3.5編寫腳本調用API實現坐標轉換

import pandas as pd
from urllib.request import urlopen
import json

# 需要轉換的坐標
datas = pd.DataFrame({'lng_gcj02':[120.67087,120.657803,120.659898,120.682615],
                        'lat_gcj02':[28.01759,28.010946,28.035593,27.994313]},
                     columns=['lng_gcj02','lat_gcj02'])
print('需要轉換的gcj02經緯度數據如下:')
datas
def gcj02_to_bd09(datas):
    
    # 在數據集中添加[lng_bd09 ,lat_bd09] 保存轉換結果
    datas['lng_bd09'] = 0 
    datas['lat_bd09'] = 0
    
    for i in range(len(gcj02_lng_lat)):
        coords = str(datas['lng_gcj02'][i])+','+str(datas['lat_gcj02'][i])
        url = 'http://api.map.baidu.com/geoconv/v1/?coords='+coords+'&ak=9KtraRRDZT8xnAoVe3o41wGGgy4X3rMW'
        try:    
            with urlopen(url,timeout=3) as html:
                http_info = html.info()
                raw_data = html.read().decode(http_info.get_content_charset())
            data = json.loads(raw_data)
            datas.iloc[i,2] = data['result'][0]['x']
            datas.iloc[i,3] = data['result'][0]['y']
        except:
            print('轉換失敗:'+coords)
    return datas

print('轉換結果如下:')
gcj02_to_bd09(datas)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容