公交、地铁线路数据,可以用于交通运输、公共服务水平分析等各个领域,是规划相关工作中较为常用的数据。
该脚本的数据获取逻辑是:
1. 调用高德地图公交线路搜索端口
2. 由预先获取的公交线路名称,逐一搜索公交线路
3. 将网页上的每条公交线路的线路点位、公交站点点位的相关信息保存到后台
4. 最后将后台数据保存到本地
5. 处理保存的数据并导入ArcGIS,生成公交线路
“预先获取的公交线路名称”需要结合先前分享的POI数据获取脚本、POI数据多场景获取脚本,当然也可以手动输入。
本文还将提供ArcGIS中一键生成公交线路数据的工具。
脚本及相关工具获取方式见文末,接下来介绍脚本使用方法。
▼数据获取过程
▼最终成果
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/”文件夹下
1、 将“BusRoutesDraw.tbx”复制到ArcGIS链接的工作文件夹下或“我的工具箱路径”,以便于后期使用其中的工具
2、 启动ArcGIS后(如ArcMap),在集成的ArcCatalog/目录中找到“BusRoutesDraw.tbx”,展开选择PathDraw、Stops工具,按提示使用即可
提供了BusRoutesDraw.tbx工具箱(具体包含了PathDraw、Stops两个工具)用于在ArcGIS中快速完成线路绘制、站点绘制等工作,工具的实现包含以下步骤:
1. 在AcrMap中执行Excel转表(线路点位(“*PathDraw”)、站点点位(“*Stop”)),之后数据管理工具-图层和表选项-创建XY图层
2. 绘制线路:ArcToolBox-数据管理工具-要素-点集转线,输入XY图层要素选择线路点位,排序选择order字段
4. 调整站点显示效果,选中数据后右键打开属性,标注选项卡,勾选以相同方式标注,字段改为stopname,切换符号显示选项卡,按需设置
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环境中制作,其他版本未测试
若“3-LineDataToGIS .exe”自动退出无提示,请打开第二步获取的三个*.json文件确认