1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

如何用Python完成百度与高德地图转换

如何用Python完成百度与高德地图转换

大家都知道,Python在工作中有很多应用场景。今天,本文主要介绍如何利用Python完成百度和高德地图的转换。

如何用Python完成百度与高德地图转换

地理编码与逆编码

地理编码和逆编码是指地名地址和地理坐标(经纬度)互相转换的过程。地理编码将地址信息映射为地理坐标,而逆地理编码则是将地理坐标转换为地址信息。地理编码能够对一些只有名称或地址的数据进行空间化,从而方便进行空间分析和制图,对于数据分析人员十分有用。

许多地图厂商都提供了相关的API,包括谷歌、esri、osm(国外)以及百度、高德、腾讯(国内)等公司。Python还提供了专业的geopy包,集成了这些API的调用。在使用API之前,需要注册应用获取KEY。

高德地图地理编码

首先来介绍高德地图的地理编码。具体操作可以参考官方开发文档,需要填写的请求参数有key和address,其它可以根据需要进行设置。以下是具体的代码:

def getGDCor(key,addr):
    baseUrl='http://restapi.amap.com/v3/geocode/geo?'
    params={'key':key,##应用key
            'address':addr,
            'city':u'武汉'##指定城市,限制范围
            }
    url=baseUrl+urllib.parse.urlencode(params)
    req=urllib.request.Request(url)
    content=urllib.request.urlopen(req).read()
    jsonData=json.loads(content)
    lon,lat='',''
    if jsonData['status']=='1':
        try:
            corr=jsonData['geocodes'][0]['location']
            lon,lat=corr.split(',')[0],corr.split(',')[1]
        except:
            lon,lat='0','0'
    else:
        print('error')
    return(lon,lat)

百度地图地理编码

下面是百度地图的地理编码,需要和高德地图一样注册应用获取KEY。请求参数包括address、city、output、ak和callback,以下是代码示例:

def getBDCor(ak,addr):
#sleep(random.random())
baseUrl='http://api.map.baidu.com/geocoding/v3/?'
params={'address':addr,
'city':u'武汉市',
'output':'json',
'ak':ak,##应用key
'callback':'showLocation'
}
url=baseUrl+urllib.parse.urlencode(params)
req=urllib.request.urlopen(url).read().decode()#针对中文需要设施编码
cont1=req.replace("showLocation&&showLocation(","")
cont=cont1.replace(")","")
jsonData=json.loads(cont)
lon,lat=0,0

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/7259.html