空间分析:1-1.高德地图获取北京所有小区的POI

本文介绍了如何使用高德地图开放平台的API获取北京所有小区的POI数据。首先获取北京边界,然后通过递归拆分网格并设定阈值,确保每个网格内的数据量不超过800个,最后调用接口获取小区数据并进行汇总。提供了Python代码实现,并展示了获取结果。
摘要由CSDN通过智能技术生成

 

我们使用高德开放平台https://lbs.amap.com上的webapi服务,获取POI数据,严格说来不算爬虫,就是调数据接口获取数据而已。

步骤也很简单。

1.获取北京的范围。

2.将北京范围拆分成设定步长的网格,用每个网格矩形搜索小区数据,如果搜索到的数据量大于阈值,则将网格拆分成四个,如此递归,直到矩形搜索到的数据量小于阈值。

3.用2中获取的网格调用接口,获取小区数据,把所有网格的数据汇总到一起就可以了。

稍稍有点难度的,可能就是网格拆分的递归,但只要想明白了,就也很简单。

接下来,看实践。

 

一.获取北京范围

看说明:高德地图开放平台——开发指南——行政区划查询。

https://lbs.amap.com/api/webservice/guide/api/district

根据请求参数说明,拼接出如下一个url,就可以获取北京范围的数据了,当然,用户key自己申请一个。

https://restapi.amap.com/v3/config/district?keywords=北京&subdistrict=0&extensions=all&key=<用户的key>

polyline就是北京边界坐标点串,拷贝下来,留着备用。

把polyline:后面跟着那一串,复制保存在polyline.txt文件中,双引号不用留。

 

二.递归拆分网格

为了便于理解,我们把拆分网格和获取数据分开写。

 

先看说明:

高德地图开放平台——开发指南——搜索POI——多边形搜索:

https://lbs.amap.com/api/webservice/guide/api/search

多边形搜索的示例:

https://restapi.amap.com/v3/place/polygon?polygon=116.460988,40.006919|116.48231,40.007381|116.47516,39.99713|116.472596,39.985227|116.45669,39.984989|116.460988,40.006919&keywords=kfc&output=xml&key=<用户的key>

根据多边形搜索条目下的请求参数说明,可以知道,在url中,我们需要拼接几个参数,才能获取数据。

1.key,需要在高德地图开放平台上申请,既key=用户的key

2.polygonÿ

  • 4
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值