(像这种东西才是我这个有独立探索精神的技术流博主的核心竞争力啊)
POI(Pointof Interest,兴趣点)就是电子地图上的各种设施点位等。可以用来做很多事情,比如项目前期分析中的周边公服设施分布(最低端用法)。很多电子地图下载器都提供POI数据下载,但是一般都要收费,我就想问,凭什么!!!电子地图的这些数据都是开放的,凭什么你要收我钱!!!
于是,不完全出于这个原因,我找了一个脚本,进行了面向编程零基础的大部分规划人,的脚本重新编译工作(使用高德地图数据源)。
01 合并程序包的使用(看这个就够了)
三个步骤——修改两个txt文件,双击一个exe文件,等待,齐活。
具体步骤:
向高德地图申请获取POI数据的钥匙,分享文件中已提供(仅做交流使用,建议后期自行申请,否则下载过程中有可能限流)
申请:
注册成为高德地图开发者:https://lbs.amap.com/
登陆后-左侧我的应用-创建新应用-添加-选择web服务,其他随意
你要爬取的数据区域
打开坐标拾取网站,选点、粘贴坐标
https://lbs.amap.com/console/show/picker
你要爬取的数据类型,比如休闲类、综合商场
依据高德POI分类规范,Sid会提供
2.运行0-Get_GaodeMap_POI_Polygon.exe脚本,等待爬取完成,目标文件为" POI.xlsx"
(后台回复“Get_GaodeMap_POI_by_Polygon”获取)
(以下瞎絮叨,建议不看。)
02 分开程序包的使用
1.在reference文件夹中改写key、region、POIClass文件
2.运行cutmap_polygon .exe,将整个大块区域分割成POI数据不超过990条的小区域
3.运行get_poi_polygon .exe,分块爬取数据
4.运行excel_merge .exe合并所有的excel,并单独储存火星坐标系下的坐标文件(excel_merge已加入去重机制,excelA1单元格为筛选重复的标准)
5.运行huoxing2wgs84 .exe进行坐标转换,将火星坐标系转化为wgs84,并单独储存wgs84坐标系下的坐标文件
6.运行Rewrite .exe将转换后的坐标追加到结果文件"poi_get\POI.xls"
03 极少数出错情况应对
1.提示“解析页码…………”长时间未更新。
可考虑强制关闭窗口,检查已爬取数据类型,修改“poi_get/POI_Exist.txt”或分块爬取时"MapCutPoint/对应块/POI_Exist.txt”(删除已爬取类型),然后使用分开的程序包(2-5)继续爬取数据
2.程序自动退出。
可检查“poi_get/data”目录下已获取的数据,删去最后一类POI数据后,修改“poi_get/POI_Exist.txt”或分块爬取时"MapCutPoint/对应块/POI_Exist.txt”(删除已爬取类型),然后使用分开的程序包(2-5)继续爬取数据
对于POI数据获取,Sid预设了三个场景,划定矩形区域下载数据是最实用的,但是还是增加了两个场景——
根据城市名称,下载全部数据(适合公服设施、小城市等,因为有数据量的限制1000个点)
多个矩形区域同时爬取POI数据,提升效率(适合带拐弯的线性空间分块爬取数据)
以上两个场景的脚本,本次不打算分享。
结合POI数据获取脚本,又编写了公交线路获取脚本,横跨HTML、Javascript、Python三大编程语言,编写难度好大,有敝帚自珍的心理,不知道需求量大不大,请在评论区留下你的声音。
效果如何,请看动图:
脚本备注说明:
1.原数据包:https://github.com/zhoujungis/amap_poi_scrapy,有问题请联系原作者:zhoujunseu@163.com
2.改写由sid完成,改写内容包括:
扩充poi爬取类型包括大类、中类、小类;
使用文本输入动态数据的方式,而不需要每次改写代码;
合并程序包
增加多矩形区域同时爬取的功能
增加程序容错机制等。
涉及改写内容如有疑问请联系:sidchen0@qq.com,程序版权归属原作者,请勿用作商业用途
3.本程序基于python语句开发,版本python3.7(64-bit),测试在win10环境完成;使用需要连接网络;未进行反解译打包,欢迎有心人解译修改,进行二次开发。