值得注意的是,在实际请求中,百度API限制了检索只能返回20个URL页面。这就意味着我们一个区域最多只能检索20*20=400个POI点。实际需求中往往不止400个点的。
但人民的智慧是无穷的,我们接下来介绍第二种方式解决上面400个点的弊端。
矩形区域检索所谓矩形区域检索,就是给定一个矩形范围的经纬度坐标(实际上两点即可定位一个矩形,左下点和右上点),然后在该矩形范围内进行兴趣点的检索。
而矩形范围经纬度坐标的确定可以利用之前介绍的坐标拾取系统进行拾取。
例如下图在武汉市(武汉加油!)拾取一个蓝色框的区域,把左下角的经纬度和右上角的经纬度记录下来即可,这样一个范围就做好啦。
例如我们拾取了一个矩形:
左下点的经纬度为:114.2540523, 30.471019
右上点的经纬度为:114.2687126, 30.4877379
现在利用矩形区域检索的URL如下:
?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
这几处的相关信息即可使用,生成的数据如下所示:
怎样,是不是很简单呢!至此,两种方式已经介绍完毕。当然,获取经纬度信息只是我们的第一步操作,后续的过程我们将向大家展示如何根据经纬度信息获取两点之间的真实距离。