文章目录
高德POI的获取
改进代码
该篇文章是关键词搜索法获取高德poi,但鉴于无法突破900条记录的上限,因此重写了矩形搜索法的文章,具体可参考以下文章:
(建议没有python基础的朋友先阅读该篇再看矩形搜索法!)
前言
首先我们需要明白一些常识
- poi是兴趣点,它本身除了经纬度,还记录了一些信息,如名称、地址、联系方式、所属行政区
- 高德poi是指从高德地图上获取poi,所以我们借助的平台是高德地图
- 高德地图知道有很多人需要用到poi,因此它十分良心地推出了若干个接口(API),借助这些API我们就可以各取所需。
- 最容易被忽略的一点,通过高德地图获取得到的坐标会有偏移,具体详看3.2节,因此我们获取得到的坐标还需要经过坐标系转换才能得到正确的坐标,
API的理解
我们把整个poi的获取理解成以下几个步骤:
(1)找“高德地图”这个人申请要数据
(2)高德地图他说你申请数据需要先填一下这张数据需求表
(3)你拿到这张表(API),开始填写表(API)里的信息,包括POI的类别,POI的区域,需要数据的格式
(4)高德地图看了你填写的需求表,就从它的数据库里找到并且交回给你
(5)你拿到数据之后,筛选出关心的信息,之后就找各种方式把数据保存起来,例如存成一份excel表,或者一份txt文件,抑或是csv表格等等
所以通俗地讲,API就是一份表,通过这个表可以让对方返回你需要的东西,只不过实际上,这个表是用链接的形式发给你,在链接里填入信息就相当于填表的行为了。
查看API接口
在高德开放平台上,我们获取poi所需的接口位于[开发支持]-[Web服务]-[Web服务API]下,点击即可进到主页。我们需要用到的接口如下图所示:
从图上可以知道,高德地图说想使用这个API,你必须有我家的密钥(key),因此我们首先需要去申请一下这个key。具体怎么申请可以参照以下这篇文章(https://zhuanlan.zhihu.com/p/96838566),接下来默认大家都有这个key了。
然后呢,我们从适用场景那里得知,这个搜索poi有四种方法可以获取poi,分别是关键字搜索、周边搜索、多边形搜索和ID查询,我们这里使用最简单的关键字搜索。
在关键字搜索下面,我们可以看到有个请求参数的表格,这个请求参数其实就是API里需要我们填写的信息,我们看到那么多参数,其实不用慌,分清哪些是必填的,哪些是可填的,接下来就好办了。
从我框选的地方可以知道,其实必填的只有两三项。
1.key,就是我们上面申请的密钥
2.keywords或者types,注意是两者至少填一个,我示例里选择的是types
3.city,这个如果不填的话默认是帮你搜索全国的,但我们一般都会指定一个区域
4.page,你可以想象成一页页的纸,高德地图默认每页20条信息,默认返回一页给你,也就是20条。那么为了获取全部的poi,我们需要高德地图返回尽可能多页给我们,直到搜不到poi为止,因此这个参数在控制循环的时候尤为重要
5.output,返回的数据格式类型,我们一般都返回JSON格式,方便我们处理
接下来,我们查看一下返回的参数,这部分内容比较多,因此我录了个视频来讲解。
核心参数:
1. status
2. pois(核心参数:location、name等)
查看完返回结果参数之后,我们就已经明白了我们需要填写的信息和最后得到的信息有哪些,那么距离开始操作就只差最后一步了,就是拿表(API)填写。
高德地图里给我们举了个栗子: