@TOC地理逆编码(获取经纬度详细地址)
逆地理编码
逆地理编码,又称地址解析服务,是指从已知的经纬度坐标到对应的地址描述(如行政区划、街区、楼层、房间等)的转换。常用于根据定位的坐标来获取该地点的位置详细信息,与定位功能是黄金搭档。也就是坐标转地址。
作业流程
第一步,申请Web服务API类型Key;
第二步,参考接口参数文档发起HTTP/HTTPS请求,第一步申请的 Key 需作为必填参数一同发送;
第三步,接收请求返回的数据(JSON或XML格式),参考返回参数文档解析数据。
定义URL
需要注意的是,调用逆地理编码需要高德的key,没有的同学可以搜索高德开放平台进行注册申请,这里就不介绍了。这是高德平台调用逆编码API的开发指南地址https://lbs.amap.com/api/webservice/guide/api/georegeo
URL构成
逆地理编码采用的请求方式为GET,API服务地址为https://restapi.amap.com/v3/geocode/regeo?parameters。URL中可以输入10个参数,其中Key和Location为必填参数,其余为可选参数,若不填写,则会使用默认的缺省值。具体的参数含义和缺省值见下表。

由于我们的目标是获取到行政村一级的数据,而常规返回数据中这一项通常为空值,故选择设置extensions=all,可以得到更多的返回信息,下面是一段完整的url。
“https://restapi.amap.com/v3/geocode/regeo?output=json&location={111.102608},{38.119400}&key=&extensions=all”
发起请求和返回数据处理
发起请求
import requests
res = requests.get(url)
逆地理编码API使用的请求方式为get
返回参数处理
逆地理编码的响应结果的格式由请求参数output指定。这里没有设置该参数,故返回默认的json格式。
val = res.json()
返回参数主要分为结果状态值status、状态说明info、逆地理编码列表regeocodes三类。结果状态值和状态说明反映的是请求结果,主要数据都在逆地理编码列表中。

我们可以读取字典的方式对该列表进行读取
val['addressComponent']['province'] # 获取省份
val['addressComponent']['city'] # 获取市
val['addressComponent']['district'] # 获取县区
下面是根据上述流程对代码进行封装得到的完整代码,这里我们通过遍历PIO列表里面的地名获取距离最近的庄村点作为所属行政村名称。另外值得注意的是常规GPS获取到数据的坐标系统与高德所用坐标系统不一致,存在偏差。可以通过调用坐标转换API实现GPS坐标到高德坐标的转换。这部分代码已经采用函数封装写在下面了,有需要的可以参考一下。
import requests

本文介绍了如何利用高德地图的逆地理编码API将经纬度坐标转换为详细的地理位置信息。首先,需要申请API Key,然后通过HTTP请求发送坐标并解析返回的JSON数据,获取省、市、区等地址信息。针对行政村级别的数据,通过设置`extensions=all`可获取更多详细信息。此外,还提供了坐标转换函数,以解决不同坐标系统间的转换问题。最后,通过示例代码展示了如何遍历返回的POI列表,找到最近的村庄名称。
最低0.47元/天 解锁文章
2595

被折叠的 条评论
为什么被折叠?



