Python调用百度地图API获取各点的经纬度信息(两种方式)

前言

小伙伴们大家好,在上一期的推文中我们介绍了如何利用百度地图的API获取POI兴趣点的相关信息,详见:

干货 | 10分钟教你用Python获取百度地图各点的经纬度信息

但是只是简单介绍了API的调用方式。今天我们来讲讲如何在Python里面调用申请的API接口,然后利用Python进行相关的数据处理,最终得到我们想要的信息。

最近大家还是要响应号召,不出门!在家好好学习吧~

地点检索方式

目前百度地图的地点检索服务有以下4种方式:

行政区划区域检索:开发者可通过该功能,检索某一行政区划内(目前最细到城市级别)的地点信息。

圆形区域检索:开发者可设置圆心和半径,检索圆形区域内的地点信息(常用于周边检索场景)。

矩形区域检索:开发者可设置检索区域左下角和右上角坐标,检索坐标对应矩形内的地点信息(常用于手机或PC端地图视野内检索)

地点详情检索:不同于以上三种检索功能。地点详情检索针对指定POI,检索其相关的详情信息。开发者可以通过三种区域检索(或其他服务)功能,获取POI id。使用“地点详情检索”功能,传入id,即可检索POI详情信息,如评分、营业时间等(不同类型POI对应不同类别详情数据)。

常用的方式主要是第一种和第二种,今天对这两种方式都介绍一下。

行政区划区域检索

上次说了,API的调用方式是通过编辑好的URL,请求服务器然后返回所需要的的数据,数据是JSON或者XML类型的(别问我什么是JSON)。

具体的说明大家去官网看吧balablaba的……这里我就不在BB了,直接贴上一个编辑好的URL:

http://api.map.baidu.com/place/v2/search?query=超市&region=武汉市&output=json&ak=申请的AK&scope=1&page_size=20&page_num=0

上面URL中,绿色标出的是需要填写的参数。各个参数的说明如下:

关于其他可选参数更多详细信息请戳:

http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-placeapi

值得注意的是,page_size=20&page_num=0表示每个URL页面返回的POI数量为20个,这个是第0个页面,因为在程序中,一般都是从0开始的。

好了,请求讲完了,接下来放Python代码:

欲下载本文相关的代码及算例,请关注公众号【程序猿声】,后台回复【PYMAP】不包括【】即可

代码的思路也相当简单,首先是构造URL,然后请求返回JSON格式的数据,Python处理后写入CSV文件中。

获取的数据详情如下所示,有需要的同学可根据说明修改相应的参数获取相应的数据:

值得注意的是,在实际请求中,百度API限制了检索只能返回20个URL页面。这就意味着我们一个区域最多只能检索2020=400个POI点。实际需求中往往不止400个点的。*

但人民的智慧是无穷的,我们接下来介绍第二种方式解决上面400个点的弊端。

矩形区域检索

所谓矩形区域检索,就是给定一个矩形范围的经纬度坐标(实际上两点即可定位一个矩形,左下点和右上点),然后在该矩形范围内进行兴趣点的检索。

而矩形范围经纬度坐标的确定可以利用之前介绍的坐标拾取系统进行拾取。

例如下图在武汉市(武汉加油!)拾取一个蓝色框的区域,把左下角的经纬度和右上角的经纬度记录下来即可,这样一个范围就做好啦。

例如我们拾取了一个矩形:

左下点的经纬度为:114.2540523, 30.471019

右上点的经纬度为:114.2687126, 30.4877379

现在利用矩形区域检索的URL如下:

http://api.map.baidu.com/place/v2/search?query=超市&bounds=30.471019,114.2540523,30.4877379,114.2687126&output=json&ak=申请的AK&scope=1&page_size=20&page_num=0

参数无太大变化,就是region变成了bounds,并且指出了矩形区域的边界经纬度(左下点和右上点)。注意绿色处要填上你自己的AK。

好了,现在检查一下URL编辑是否正确,复制到浏览器回车一下看看:

OK,大功告成。好了,现在我们来解决400个点限制的问题。不知道聪明的你们想到了没有。

没错,就是切割区域。既然百度限制了每个区域检索最多只能返回400个点,那么可以通过矩形检索的方式,将一个大矩形切割成很多小矩形,依次在每个小矩形内进行检索,最后将所有小矩形的结果加起来就有很多很多个点啦。怎样,是不是很聪明呢!

例如将一个大区域分割成1234号区域分别检索,假如每个区域都返回400个点,那么总共就能获取4X400=1600个点了。

而如何分割,则不必手动拾取点进行划分,可以利用程序来计算嘛!

好了,下面给出一份分割区域的Python代码:

欲下载本文相关的代码及算例,请关注公众号【程序猿声】,后台回复【PYMAP】不包括【】即可

读者只需要简单修改代码中的:

  • 查询关键字

  • 关注区域的左下角和右上角百度地图坐标(经纬度)

  • 定义细分窗口的数量,横向X * 纵向Y

  • 获取AK

这几处的相关信息即可使用,生成的数据如下所示:

怎样,是不是很简单呢!至此,两种方式已经介绍完毕。当然,获取经纬度信息只是我们的第一步操作,后续的过程我们将向大家展示如何根据经纬度信息获取两点之间的真实距离。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,753评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,668评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,090评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,010评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,054评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,806评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,484评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,380评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,873评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,021评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,158评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,838评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,499评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,044评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,159评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,449评论 3 374
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,136评论 2 356

推荐阅读更多精彩内容