目录
一、申请高德地图密匙二、调用接口(官方文档内容,助于下文理解)三、地址转换为经纬度1.处理数据—去重2.批量转换为经纬度 参考一、申请高德地图密匙
进入高德开放平台 link.
注册成为开发者(个人开发者就行,需使用实名以及支付宝认证)
首页—>开发支持—>Web服务—>Web服务API—>地址/逆地址编码(直接进入)
点击‘申请key’(或者直接从“控制台—我的应用”)—>创建新应用—>添加key
二、调用接口(官方文档内容,助于下文理解)
参考接口参数文档(见下图)发起HTTP/HTTPS请求,第一步申请的 Key 需作为必填参数一同发送。
我们需要调用的API接口是地理编码(把地理信息转换成经纬度)的接口,接口如下:
/v3/geocode/geo?parameters
也可直接进入网页查看(直接进入)
官方使用案例:
三、地址转换为经纬度
1.处理数据—去重
import pandas as pdpeople=pd.read_excel('D:/处理过的.xlsx')#去除重复数据#subset为依据的字段,inplace表明是在该表中进行处理#keep表明有重复的数据保留第一个(first)和最后的(last)people.drop_duplicates(subset=['现(暂)住地','现住地详址'],inplace=True,keep='last')#选择一#输出为.xlsx#people.to_excel('D:/output.xlsx',index=False)#不包含索引名#选择二#输出为.csvpeople.to_csv('D:/output.csv',index=False,encoding='gbk')
2.批量转换为经纬度
import requestsimport codecsfrom openpyxl import Workbookwb = Workbook()sheet = wb.activedef get_location(address, i):print(i)url = "/v3/geocode/geo"data = {'key': '*****', #需要替换为在高德地图开发者平台申请的key'address': address}r = requests.post(url, data=data).json()sheet["A{0}".format(i)].value = address.strip('\n')print(r)if r['status'] == '1':if len(r['geocodes']) > 0:GPS = r['geocodes'][0]['location']sheet["B{0}".format(i)].value = '[' + GPS +']'else:sheet["B{0}".format(i)].value = '[]' else:sheet["B{0}".format(i)].value = '未找到' #将地址信息替换为自己的文件,一行代表一个地址,根据需要也可以自定义分隔符#读取地址文件。我的为D:/output1.csvf = codecs.open(r"D:/output1.csv", "r", "utf-8")i = 0while True:line = f.readline()i = i + 1if not line:f.close()#设置保存路径,此处为D:/保存文件.xlsxwb.save(r"D:/保存文件.xlsx")breakget_location(line, i)
结果:
参考
1.link