原文刊发于微信公众号onMway
概述
公交、地铁线路数据,可以用于交通运输、公共服务水平分析等各个领域,是规划相关工作中较为常用的数据。
该脚本的数据获取逻辑是:
1.调用高德地图公交线路搜索端口
2.由预先获取的公交线路名称,逐一搜索公交线路
3.将网页上的每条公交线路的线路点位、公交站点点位的相关信息保存到后台
4.最后将后台数据保存到本地
5.处理保存的数据并导入ArcGIS,生成公交线路
“预先获取的公交线路名称”需要结合本人开发的POI数据获取脚本、POI数据多场景获取脚本,当然也可以手动输入。
还将提供ArcGIS中一键生成公交线路数据的工具。
下载地址:
https://chdeducn-my.sharepoint.com/:f:/g/personal/201541020106_chd_edu_cn/EqwYJjpfNKVPr2Y78rczb0cB2UsN5-51VfHiobO-vljKnw
-1st- 获取公交线路数据脚本
1、 首先爬取目标区域的公交站点POI数据,并将最后生成的文件“POI.xls”粘贴至“Linedata”
*依托POI数据获取脚本,最后可以获取整个城市的公交线路,或者是某一矩形区域途径的公交线路数据(这样能更好地分析该区域的人群流动)。
2、 双击运行“1-ExtracBusLines .exe”,从“POI.xls”中提取公交线路数据,保存在“Linedata/BusLineNames.txt”
*也可以忽略1-2步骤,自己创建BusLineNames.txt文件,手动输入公交、地铁线路名称
3、双击运行“2-GetBusRoutes.html”(将使用默认浏览器打开),依据页面提示进行数据获取,并将生成的三个“*.json”文件粘贴至“Linedata/”
4、双击运行“3-LineDataToGIS .exe”,将第三步获取的数据转换为表格并转换坐标系为WGS84(4326),方便导入GIS,保存在“RoutesGet/”文件夹下
-2nd- 数据导入GIS工具
01 使用方法
1、 将“BusRoutesDraw.tbx”复制到ArcGIS链接的工作文件夹下或“我的工具箱路径”,以便于后期使用其中的工具
2、 启动ArcGIS后(如ArcMap),在集成的ArcCatalog/目录中找到“BusRoutesDraw.tbx”,展开选择PathDraw、Stops工具,按提示使用即可
02 Tips
生成的线路、站点坐标系为4326
选中工具后,右键-批处理,可以较省力地完成大量线路数据的生成
若将生成的线路、站点数据保存至“要素数据集”,则创建的要素数据集 坐标系也要是4326
保存至数据库的线路,存储名称不能以数字作为开头,否则工具报错
-3rd-编写说明
1、 所有脚本由Sidchen编写,有问题可以联系sidchen0@qq.com
2、 致谢
“2-GetBusRoutes.html”中请求公交线路数据的代码为高德地图官方提供的示例 “3-LineDataToGIS.exe”中的坐标转换代码来自网络,原项目地址:https://github.com/zhoujungis/amap_poi_scrapy,原作者联系方式zhoujunseu@163.com
3、 最后会生成三类表格
Buslines为线路信息总表,包含线路名称、首末班车时间、票价等信息
RoutesGet/LineDraw下
“*PathDraw”为每条公交线路的经纬度点位,order字段是点位顺序,用于在GIS中绘制线路
“*Stop”为每条公交线路的站点经纬度点位,sequence字段是站点顺序,用于在GIS中显示沿途站点
4、 所有脚本测试均在win10环境完成,全平台通用
“2-GetBusRoutes.html”使用浏览器运行,测试浏览器为IE、Microsoft Edge(Chromium)
“* .exe”的文件需要windows环境支持,基于python语言编写
5、“BusRoutesDraw.tbx”工具为ArcGIS10.6环境中制作,其他版本未测试