百度地圖坐標轉(zhuǎn)換API
功能
將常用的非百度坐標轉(zhuǎn)換成百度地圖中使用的坐標劫扒,如:GPS設(shè)備獲取的坐標、google地圖坐標狸膏、soso地圖坐標沟饥、amap地圖坐標、mapbar地圖坐標等
特點
- 以HTTP形式提供坐標轉(zhuǎn)換服務(wù)
- 支持批量坐標轉(zhuǎn)化湾戳,一次最多可轉(zhuǎn)換100個坐標點贤旷。
- 轉(zhuǎn)化后的坐標可以在百度地圖JavaScript API、車聯(lián)網(wǎng)API院塞、靜態(tài)圖API遮晚、web服務(wù)API等產(chǎn)品中使用
服務(wù)地址
- http://api.map.baidu.com/geoconv/v1/?
- 組成說明:
- 域名:api.map.baidu.com
- 服務(wù)名:geoconv
- 服務(wù)版本號:v1
服務(wù)參數(shù)說明
返回值說明
狀態(tài)碼說明
使用Python3.5編寫腳本調(diào)用API實現(xiàn)坐標轉(zhuǎn)換
import pandas as pd
from urllib.request import urlopen
import json
# 需要轉(zhuǎn)換的坐標
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('需要轉(zhuǎn)換的gcj02經(jīng)緯度數(shù)據(jù)如下:')
datas
def gcj02_to_bd09(datas):
# 在數(shù)據(jù)集中添加[lng_bd09 ,lat_bd09] 保存轉(zhuǎn)換結(jié)果
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('轉(zhuǎn)換失敗:'+coords)
return datas
print('轉(zhuǎn)換結(jié)果如下:')
gcj02_to_bd09(datas)