查看原文
其他

我在哪里?调用高德API获取地址经纬度信息

爬虫俱乐部 Stata and Python数据分析 2022-03-15

本文作者:李   虎,中南财经政法大学统计与数学学院

本文编辑:寇晓璇

技术总编:王子一

Python云端课程来啦!

      寒雪梅中尽,春风柳上归。新的一年,正值开学之际,为了感谢大家长久以来的支持和信任,爬虫俱乐部为大家送福利啦!原价2400元的Python编程培训课程,现在仅需100元即可通过腾讯课堂参与学习。详细培训大纲及报名方式请查看推文Python云端课程福利大放送!0基础也能学~或点击文末阅读原文直接报名呦~另外,对报名有任何疑问欢迎在公众号后台和腾讯课堂留言哦!
我是谁?我在哪里?我在哪里?

不用担心,高德地图来帮您!不只有卫星定位,还可以为您导航,甚至天气,雾霾,附近信息都可以调取给您。 

而有些时候,我们可能需要将详细的结构化地址转换为经纬度坐标,如果一个一个去查询地址的经纬度,那就太耗时耗力了。友好的高德开放平台为我们提供了地理/逆地理编码的接口(API),可以在Python中轻松实现详细的结构化地址和经纬度坐标之间的相互转换。

结构化地址举例:北京市朝阳区阜荣街10号

转换后经纬度:116.30621,39.976121

话不多说,我们一起来学习一下!👇


一、获取Key



想要调用高德API实现地址与经纬度之间的转换,我们首先需要注册成为高德开放平台(https://developer.amap.com/)的开发者,获取Web服务API类型的Key(用户身份验证和授权的凭证,发送请求需要),具体步骤如下:

(1)创建新应用:进入控制台,创建一个新应用。

(2)添加新Key在创建的应用上点击"添加新Key"按钮,在弹出的对话框中,依次输入应用名称,选择绑定的服务为“web服务API”。

这样,我们就可以在所创建的应用下面看到刚申请的 Key 了。

说明:高德免费 API 调用量上限为 300000 次/日(一次请求为 1 次),并发上限为 200 次/秒,轻度使用完全足够了。


二、地址转换为经纬度


获取高德开放平台的Key后,我们就可以发送请求、获取响应,实现将详细的结构化地址转换为经纬度了。请求参数中,keyadress为必填项,key为第一步申请的 Keyadress为需要查询的地址,规则遵循:国家、省份、城市、区县、城镇、乡村、街道、门牌号码、屋邨、大厦,如:北京市朝阳区阜通东大街6号。如果需要解析多个地址的话,请用"|"进行间隔,并且将 batch 参数设置为 true,最多支持 10 个地址进进行"|"分割形式的请求。
URLhttps://restapi.amap.com/v3/geocode/geo?
请求方式GET
请求参数key(高德Key)、address(结构化地址信息)等
1import requests
2
3url = 'https://restapi.amap.com/v3/geocode/geo?'
4params = {
5    "key":"请在这里输入你的Key",
6    "address":"请在这里输入地址"
7}
8response = requests.get(url,params=params).json()
9
10print("地址:",response['geocodes'][0]['formatted_address'])
11print("转换后经纬度:",response['geocodes'][0]['location'])
例如,我们想要获取中南财经政法大学的经纬度信息(中南财经政法大学的结构化地址为湖北省武汉市洪山区南湖大道182号中南财经政法大学),就可以运行下面这段代码:



三、经纬度转换为地址


高德API支持结构化地址与经纬度之间的相互转换,同样地,我们可以经纬度转换为地址,实现方式与地址转换为经纬度类似。请求参数中,keylocation为必填项,key为第一步申请的 Key;location为经纬度坐标,传入内容规则:经度在前,纬度在后,经纬度间以“,”分割,经纬度小数点后不要超过 6 位。如果需要解析多个经纬度的话,请用"|"进行间隔,并且将 batch 参数设置为 true,最多支持传入 20 对坐标点。每对点坐标之间用"|"分割。
URLhttps://restapi.amap.com/v3/geocode/regeo?
请求方式GET
请求参数key(高德Key)、location(经纬度坐标)等
1import requests
2
3url = 'https://restapi.amap.com/v3/geocode/regeo?'
4params = {
5    "key":"请在这里输入你的Key",
6    "location":"请在这里输入经纬度"
7}
8response = requests.get(url,params=params).json()
9
10print("经纬度:",response['regeocode']['addressComponent']['businessAreas'][0]['location'])
11print("转换后地址:",response['regeocode']['formatted_address'])
例如,我们想要查询(114.3616,30.514482)这个经纬度的地址信息,就可以运行下面这段代码:

如此便捷,如此简单自如,我们今天又学习到了专业性的内容,自己动手定位自己的位置吧~

同时,高德里面还放出来更多的信息数据系统,你都可以自主性地学习一下,有后续内容我们一起沟通噢~


注释:有关地址与经纬度之间转换的更多内容请参见高德地理/逆地理编码API的说明文档,见下面网址
https://developer.amap.com/api/webservice/guide/api/georegeo



对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!


往期推文推荐

超级简单的条件函数,轻松生成虚拟变量

Python云端课程福利大放送!0基础也能学~

【爬虫实战】“我们,继续新故事”——爬取LOL英雄皮肤

“人像动漫化”—Python实现抖音特效

跨框架合并数据|frlink的用法,你get到了吗

《唐探3》做错了什么?|来自150万字影评的证据

爬虫俱乐部年度总结|《请回答2020》

春节假期临近,来爬爬豆瓣看看有什么好剧putdocx生成Word文档so easy!

模糊匹配我只用这一招!

利用tushare获取财务数据

爬虫实战|Selenium爬取微信公众号标题与链接

轻轻一点,就知有没有|rqrs命令介绍

强大的正则表达式

自动群发邮件(二)——附带附件

自动群发邮件--email和smtplib基本模块的使用

批量处理变量名和标签的小方法

计算工作日的小能手——workdays

Seminar | 企业错报与银行贷款合同

Seminar | 共同基金行业的性别歧视Seminar | 来自女儿的塑造:高管、女性社会化与企业社会责任

小贴士:Markdown的基本语法

听说相貌也能量化 | 调用百度人脸检测API实现颜值打分

列出指定属性的变量|findname命令比ds命令

新一代的标签转码小能手【爬虫实战】亚马逊网站Top100畅销书爬取

关于我们 


微信公众号“Stata and Python数据分析”分享实用的Stata、Python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。



此外,欢迎大家踊跃投稿,介绍一些关于Stata和Python的数据处理和分析技巧。

投稿邮箱:statatraining@163.com投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存