Python根据经纬度获取详细地址信息
本文通过调用高德地图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)
输出结果:
作者:大大怪将军