一、前言
本文将详细介绍公交数据的采集与可视化的全过程。通过本文的方法,您可以得到一个城市完整的公交运行线路地理数据以及该线路的一些基本信息数据。可以用来研究城市的公交覆盖率、公交公平性、公共交通网络相关的研究。
线路数据精度可以保存在5M范围的精度内,可以详细描述公交的运行情况,如图:
以下是正文2019年的时候曾发布过一篇关于通过8684公交信息查询网采集公交数据的方法:
最近在进行相关研究中发现该方法随着8684网站更新的原因,一些参数出现了无法使用的现象。其中最核心的问题就是下面这一部分的数据8684已经进行了删除:
在新的网站中,网址向百度地图API的请求获得经纬度来获取地图显示的内容已经被删除,所以如果需要获取站点经纬度的话就只能通过请求高德/百度地图API来获取。但该方法也存在诸多不足:
名称的重复性可能会导致站点位置请求失败。
公交线路由站点连接组成,很难与实际路网数据重合,对于分析来说具有极大的不可靠性。
二、思路
于是,这种方法在我最近的研究中就被弃用了。我转向了目前的地图开发商公开的一些公交数据,看是否有获取的可能。具体的原理及我们向各类地图输入公交线路的关键词,来获取一条线路的基本信息,通过请求全市所有的线路来获取完整的公交数据。
如图,通过请求,高德API提供了线路的基本信息已经运行路线来帮助我们进行公交信息的查询。与Web服务API请求不同的是,公交数据采取的是高德地图 JS API 获取,这里需要数据获取者具有一定的JS、HTML基础。
高德地图 JS API 是一套 JavaScript 语言开发的的地图应用编程接口,移动端、PC端一体化设计,一套 API 兼容众多系统平台。目前 JS API 免费开放使用。JS API 提供了2D、3D地图模式,满足绝大多数开发者对地图展示、地图自定义、图层加载、点标记添加、矢量图形绘制的需求,同时也提供了 POI 搜索、路线规划、地理编码、行政区查询、定位等众多开放服务接口。举例:根据『公交路线』,获得公交线路起终点、途经点、首末班车时间等详细信息。以查询『536』公交路线为例,一次完整的公交路线查询如下:
AMap.plugin(["AMap.LineSearch"], function() {
//实例化公交线路查询类var linesearch = new AMap.Li