Python调用高德地图API获取中文地址对应的经纬度

目录

一、高德地图API简介

1.进入“地理/逆地理编码API”界面

2.地理编码API参数简介

二、python获取地址经纬度

1.获取单个位置经纬度

2.获取多个位置经纬度


PS:本文借助高德API实现任意地址的经纬度获取,适用面较广。如果个人手中数据为比较整齐的省区县数据,相对应到经纬度,也可以参考python处理中文地址描述中的省市区信息(经纬度)。

开始正文~

一、高德地图API简介

1.进入“地理/逆地理编码API”界面

1)登录高德地图API网站-高德API,界面如图所示。

Python调用高德地图API获取中文地址对应的经纬度_第1张图片

鼠标移至“开发支持-Web服务API”,点击进入。

2)找到下图中的“地理/逆地理编码API”,点击,如下图所示。

Python调用高德地图API获取中文地址对应的经纬度_第2张图片

2.地理编码API参数简介

界面向下滚动,我们可以看到一个API,其问号前面的部分是固定不变的,而问号后面的是参数部分。高德地图此处罗列了7个参数,包括2个必选参数(高德key,需要注册;address),以及5个可选参数。参数city的作用体现在——比如address设定为新街口,我们需要的是北京新街口的经纬度,但南京也有一个新街口,因此设定参数city可以限定地址信息的范围,确保我们获取到的是北京新街口的经纬度。参数output默认的输出结果是json格式,如更改格式,可参考网页。

Python调用高德地图API获取中文地址对应的经纬度_第3张图片

 如果想获取行政区域的经纬度,只需要在参数address处直接填入“北京市”即可,不需要参数city。这样得出的经纬度,一般是行政中心所在的经纬度。

二、python获取地址经纬度

1.获取单个位置经纬度

以北京市为例。

import requests
import json


# 输入API问号前固定不变的部分
url = 'https://restapi.amap.com/v3/geocode/geo'   

# 将两个参数放入字典
params = { 'key': '你的高德密钥',
           'address': '北京市'   }                
res = requests.get(url, params)

# 输出结果为json,将其转为字典格式
jd = json.loads(res.text)
print(jd)

输出结果如下:

Python调用高德地图API获取中文地址对应的经纬度_第4张图片 

coords = jd['geocodes'][0]['location']
print(coords)

 得到经纬度‘116.407526, 39.904030’。

PS:高德密钥

创建个人账户,进入应用管理界面,创建新应用,选择“Web服务”服务平台,这样创建出来的密钥才能使用“地理/逆地理编码”模块。

2.获取多个位置经纬度

import requests
import json


def coords(city):
    # 输入API问号前固定不变的部分
    url = 'https://restapi.amap.com/v3/geocode/geo'   
    
    # 将两个参数放入字典
    params = { 'key': '你的高德密钥',                 
               'address': city   }                    
    res = requests.get(url, params)
    jd =  json.loads(res.text)

    return jd['geocodes'][0]['location']

areas = ['xxx', 'yyy', 'zzz']
for i in areas:
    loca = coords(i)
    print(loca)

OK,大功告成!

 

参考文章https://ask.hellobi.com/blog/guofushuaizuo/18977。

你可能感兴趣的:(Python,python,接口)