百度地图坐标转换API
功能
将常用的非百度坐标转换成百度地图中使用的坐标,如:GPS设备获取的坐标、google地图坐标、soso地图坐标、amap地图坐标、mapbar地图坐标等
特点
- 以HTTP形式提供坐标转换服务
- 支持批量坐标转化,一次最多可转换100个坐标点。
- 转化后的坐标可以在百度地图JavaScript API、车联网API、静态图API、web服务API等产品中使用
服务地址
- http://api.map.baidu.com/geoconv/v1/?
- 组成说明:
- 域名:api.map.baidu.com
- 服务名:geoconv
- 服务版本号:v1
服务参数说明
返回值说明
状态码说明
使用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)
网友评论