本文通过调用高德地图API KEY,使用高德地图的逆地理编码(坐标转地址)功能实现已知经纬度信息获取详细地址信息
申请高德地图API KEY
(1)进入高德地图API官网高德地图
(2)在控制台找到应用管理-我的应用,点击右上角创建新应用,按照要求输入你要新建的应用名称和应用类型,点击新建,我的应用页面就会出现你新建的应用了
(3)在你新建的应用点击最右边的添加key,输入你的key名称,服务平台选择Web服务,点击提交
(4)添加完key后新建的应用就有会一个key了
逆地理编码(坐标转地址)
逆地理编码的过程跟地理编码没有什么大差别,可以参考官方使用说明文档
申请完key后参考接口参数文档发起HTTP/HTTPS请求,申请的key需作为必填参数一同发送;
API接口,GET请求方式:
https://restapi.amap.com/v3/geocode/regeo?parameters
接收请求返回的数据(JSON或XML格式),参考返回参数文档解析数据;
我们所要的坐标即在其中的location函数中,可直接解析json数据获取:
# 地理编码 def getGeoCode(self, address): url = f'https://restapi.amap.com/v3/geocode/geo?parameters&key={self.key}&address={address}' json_data = self.requestApi(url) if json_data['status'] == '1': location = json_data['geocodes'][0]['location'] return location else: return '获取失败'
完整代码
import requests class GaodeGeo: def __init__(self): self.key = 'YOU API KEY' def requestApi(self, url): re = requests.get(url).json() return re # 地理编码 def getGeoCode(self, address): url = f'https://restapi.amap.com/v3/geocode/geo?parameters&key={self.key}&address={address}' json_data = self.requestApi(url) if json_data['status'] == '1': location = json_data['geocodes'][0]['location'] return location else: return '获取失败' # 根据经纬坐标获取地址等信息 def getInverseGeoCode(self, location): url = f'https://restapi.amap.com/v3/geocode/regeo?parameters&key={self.key}&location={location}' json_data = self.requestApi(url) if json_data['status'] == '1': # 获取格式化的详细地址 formatted_address = json_data['regeocode']['formatted_address'] return formatted_address else: return '获取失败' ## 使用说明 gd = GaodeGeo() # 通过坐标获取所在区县 area = gd.getInverseGeoCode('113.277732,22.989125') # 示例经纬度 print('area:',area)
输出结果: