美文网首页
利用百度地图坐标转换API实现gcj02转bd09

利用百度地图坐标转换API实现gcj02转bd09

作者: binzeng | 来源:发表于2017-03-02 12:29 被阅读0次

    百度地图坐标转换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)
    

    相关文章

      网友评论

          本文标题:利用百度地图坐标转换API实现gcj02转bd09

          本文链接:https://www.haomeiwen.com/subject/oqvywttx.html