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)

输出结果: