700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 使用python将地名转换成经纬度——调用高德地图API

使用python将地名转换成经纬度——调用高德地图API

时间:2022-07-03 10:25:32

相关推荐

使用python将地名转换成经纬度——调用高德地图API

目录

一、申请高德地图密匙二、调用接口(官方文档内容,助于下文理解)三、地址转换为经纬度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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。