2. 现代城市测绘国家测绘地理信息局重点实验室, 北京 100044
2. The Modern City National Key Laboratory of NASG, Beijing 100044, China
交通拥堵是困扰现代大都市的一大难题,优先发展公共交通是解决城市交通问题的有效途径, 而常规公交是城市公共交通系统的重要组成部分。合理的常规公交线网规划对于提高公交系统的服务水平和整体效率、优化城市交通结构具有非常重要的作用。一般来说,公交线网规划要根据出行调查和公交出行数据及其预测结果,运用数学规划方法、人工智能等方法,依托于城市道路网络寻求最优布局[1],在实际应用管理中必须以城市道路和已有线网为基础,分层逐条优化,完善整体网络[2],因此对于线网整体分布状况的认识十分重要。
伴随着可视化技术应用的发展[3],可视化越来越多地应用在智能交通领域中,研究比较多的包括交通流量可视化、交通事件可视分析[4]、轨迹数据可视化分析[5]、城市道路交通信息可视化等,涉及常规公交、轨道交通、水上交通等多个方面。就线网评价分析而言,相对于以往公交线网评价使用的简单图表效果[6],将数据通过地图来渲染,将图表数据和地图相结合,也可以更直观、更整体地掌握城市公交线网的分布情况。
本文基于北京市公交矢量数据,首先利用GIS软件在空间信息处理上的优势进行数据处理得到可直接可视化的附加公交线路信息的道路网数据,然后借助开源的JavaScript地图库和地图发布服务功能,通过对处理后数据的直接可视化和原数据的聚集可视化两种方法,应用Canvas绘图技术对线网数据可视化并分析,为公交线网优化提供辅助决策信息。
1 公交线路数据处理方法 1.1 数据整理将原公交线路数据和道路数据整理入库。为有效存储空间数据, 本文采用Oracle数据库,利用ArcSDE存储和管理这些空间数据。将无关的字段删去后,公交线路数据表结构见表 1,道路数据表结构见表 2,表 2的公交线路数和线路集合两个字段的内容需要经过数据处理计算后得到。
序号 | 名称 | 数据类型 |
1 | 数据编号 | INT |
2 | 名称 | VARCHAR |
3 | 首车时间 | TIME |
4 | 末车时间 | TIME |
5 | 运营时间 | TIME |
6 | 票价 | DECIMAL |
7 | 长度 | DECIMAL |
8 | 双向 | BOOLEAN |
9 | 线路编号 | VARCHAR |
序号 | 名称 | 数据类型 |
1 | 路段编号 | INT |
2 | 道路代码 | VARCHAR |
3 | 道路名称 | VARCHAR |
4 | 道路等级 | VARCHAR |
5 | 起点名称 | VARCHAR |
6 | 终点名称 | VARCHAR |
7 | 道路长度 | NUMBER |
8 | 公交线路数 | INT |
9 | 线路集合 | VARCHAR |
图 1是原始公交线路矢量数据的直接展示,图中颜色单一,可视化效果不佳,只能反映公交线路的空间位置,需要从中判断总结北京市公交线网的布局特征,效率低下且有失准确性。因此需要进行数据处理后才可以进行直接可视化,本文从公交线路的空间位置特征入手,将其和道路空间位置关联后进行数据处理,进行得到基于城市主干道的公交线网分布情况。
1.2 处理流程要得到基于道路的公交线网分布情况,就是要将现有的公交线路叠加到城市道路网中,形成公交线路和城市道路之间的对应关系。首先需要进行公交线路和道路的匹配。关于线路匹配的算法有很多。包括关于基于点匹配线的,如基于向量识别的启发式路径推测算法[7]、基于结构模式的道路网节点匹配方法[8],也有关于线与线、线网与线网匹配的,如基于概率松弛方法的城市路网匹配[9]、基于多相似度量指标的匹配算法[10]等。总之,地图匹配是一个复杂而又重要的过程,其中主要涉及几何、拓扑、概率3种因素。
本文对于道路网现状分布的可视分析是宏观上的定性分析,因此选择较为简单的方法进行公交线路与道路的匹配。首先需要对线网和道路数据进行简化处理,具体的数据处理流程如图 2所示,主要处理步骤如下:
(1) 道路网数据的简化。选取单向道路网作为数据基础,从中选择道路等级为主干路和快速路的道路,得到北京市单向的主干道路网,同时选取单向的公交线路组成单向的公交线网。
(2) 从道路网的路段集合中选取路段L0作为第一条路段开始遍历,建立该路段的缓冲区,根据主干路和快速路的不同等级,缓冲区的阈值不同,设为d1、d2,搜索与缓冲区在空间位置上相交的公交线路,得到初始匹配集合M1。
(3) 遍历M1集合中的公交线路,分别计算每条公交线路与所选路段L0的距离。计算过程如图 3所示,计算公交线路上的折点P1、P2、…、Pn到路段L0的最短欧式距离di(i=1, 2, …,n),然后统计最短距离小于距离阈值d1(d2)的个数记为m。m/n的比值要求大于阈值S, 得到符合距离要求的公交线路集合M2。
(4) 方向判断,如图 4(a)所示,线路a和L0的方向相似,而线路b和L0方向不同,计算时遍历M2中的公交线路,公交线路和路段缓冲区域相交得到弧段集合L(L1, L2, …, Ln),总长度为L,其中每条弧段相关长度系数为λ=Li/L,则整条线路相交部分的方向值公式如下
其中方向角的计算如图 4(b)所示利用首尾结点坐标计算,然后计算所选路段的方向角为α0,则路段方向角与线路方向角差值为Lα-α0,设方向角差值的阈值为Δα,要求计算得到的方向角差值小于阈值Δα,最终得到符合要求的公交线路集合M。
(5) 由步骤(4) 得到了符合空间位置条件路段L0上的公交线路集合M,然后连接数据库中的道路信息表,根据集合M中的内容更新道路表中路段L0的线路数和线路集合两个字段。
(6) 重复步骤(3)-(5),最终得到公交线路和路段之间n:1、n:0或1:1的对应关系。
根据上述处理过程,采用Visual Studio作为开发环境,基于ArcGIS Engine二次开发了数据处理程序,处理后的数据将公交线路和道路的空间位置对应关系反映到道路信息表中,更新了每个路段的线路数和线路集合两个字段的内容,将空间位置关系反映为文字描述信息,使得道路信息表中附加了公交线路信息,为下文的直接可视化展示提供了数据依据,也可以作为交通调研的资料。
2 公交线网分布可视化与分析 2.1 基于网页的可视化技术 2.1.1 地图服务发布发布地图服务软件选择使用GeoServer,它是一款基于Java语言开发的软件服务器,构建在一个开源的Java GIS工具包--Geotools之上,支持OGC规定的开放标准。GeoServer集成了OpenLayer,使得用户能够快速、简易地生成地图。相比于商业GIS软件,GeoServer的开源性大大降低了开发成本,节省了昂贵的软件购买费用。
发布地图服务的过程相对简单,首先需要安装配置好GeoServer,然后在管理界面将整理好的SHP图层上传至服务器就可以得到访问数据的地址,可以将得到的数据以JSON形式保存在本地,方便调用。
2.1.2 JavaScript地图库的选择本文采用Leaflet.js作为JavaScript地图库。Leaflet.js是一个开源JavaScript类库,用于实现移动友好的交互式地图,具备所有开发人员需要的地图特性。
2.2 可视化方法在可视化的实现过程中,本文采用直接可视化和聚集可视化两种方式。
2.2.1 直接可视化直接可视化是最简单和最基本的可视分析方法,它通过计算机将数据一一绘制出来,并显示给用户,方法简单直接,易于编程实现。图 1为一种原数据直接可视化的效果,从图中不难发现存在公交路线相互遮挡的问题,不利于分析,很难从中发现有效的信息。本文通过对原数据的处理得到了新的基于城市主干道的公交线路密度分级可视化效果图,如图 5所示。
2.2.2 聚集可视化聚集可视化是根据要素的属性数据、位置数据或时间特性进行聚集计算再进行绘制,本文中公交线路汇聚热力图就是一种聚集可视化。其中热力图的绘制需要借助HTML5的Canvas来实现。Canvas本质上一块画布,本身并不能绘图,但是其Canvas API提供了大量能够依靠JavaScript来操控画布元素的方法。Canvas不仅支持平面图形绘制,还能绘制三维图像、动画等。在浏览器中,Canvas是逐像素进行渲染的,极其依赖分辨率,因此选择Canvas绘图技术来绘制热力图对地图可视化大有增益。基于Canvas的热力图是一种能显示某种行为或属性发生频率的图,其高度饱和的色彩能够让人们非常直观地对比出图中某些行为发生的频率高低。绘图原理如下:
(1) 将数据点全部无差别绘制到Canvas画布上。
(2) 绘制完成后,用getImageData()方法获取整个画布的ImageData对象。该对象中的每个元素都包含着这个像素的颜色信息,即RGBA四值,以数组形式存储。R代表红色,G代表绿色,B代表蓝色,A代表alpha通道,也就是透明度。
(3) 根据alpha值不同,将每个像素的RGB值用事先设定好的渐变颜色表中alpha值对应的RGB值替换,alpha值设为一个统一的值,此时每个像素已经被赋予了一个新的颜色。
(4) 设置点的圆半径及模糊度,根据新的颜色值,重新在画布上绘制图形。
本文根据以上原理,参考百度Mapv.js中关于线汇聚热力图的方法,由原公交线路数据得到图 6的线路聚合热力图的效果。
2.3 可视化结果分析图 5和图 6所示分别为两种可视化方法得到的北京市线路分布图。图 5为基于城市主干道线网密度分布的直接可视化效果图,图中根据每条路段分布的公交线路条数进行不同的颜色和粗细渲染,分为红、橙、黄、绿4种色彩等级,红色粗线条表示路段上公交线路条数密集(大于25条),绿色细线条则表示路段上公交线路稀疏。其优点在于数据经过整理具有结构性,可视化效果较为简明,易操控,容易编程实现。图 6所示为将原数据利用聚类思想、结合百度Mapv.js绘制的公交线网热力图。图中的渲染色彩方案采用的是从蓝到红的色带, 蓝色表示没有公交线路分布,红色代表线路分布密集,其优点是经过汇聚计算避免了原数据中公交线路的遮挡,不同缩放级别下画布都会重新渲染计算色彩值,得到不同的可视化效果,有利于分区域的可视化分析,而且可视化效果更好,色带渲染过渡自然。
图 5和图 6虽然是不同方法得到的可视化效果,但是对比可以发现北京公交线路分布的一些规律。两图中红色和橙色粗线条大多集中于北京城“两轴”、人流量较大的热点区域和周遭包围的环状快速路,中间呈放射型路网分布;黄色和绿色的细线条穿插在红橙色粗线条之间,四周同样呈放射型路网分布;就环线公交分布而言,三环路上分布公交线路最为密集,多于二环和四环,四环西北方公交线路分布相对于东南更为密集。对比图 5、图 6的共同特点,结合北京市的城市发展现状,总结出以下几个北京市公交线路分布的空间特点:
(1) 图 5、图 6表明市区(四环内)道路分布的公交线路密集程度明显高于城郊、乡镇的分布。这是因为城区内生活水平较高、各方面功能齐全,因此市区内人口流量远超于市郊、乡镇,人口的高流动性造就了公共交通流量的增大,促使公交线路数的增加。
(2) 环路上公交线路密度明显高于普通道路,特别是三环路上分布的公交线路最为密集(三环线路的红色粗线最为明显)。环路因其良好的交通流量承载能力被设计来缓解城区的交通压力,方便居民出行,因此在市区内,公交线路在环状快速路上的分布明显多于普通道路。
(3) 出城方向的高速路沿线公交线路分布密集(西南方向京石高速,北面京藏高速,东北方向机场高速线,地铁八通线及相连的通燕高速上共色粗线明显)。随着北京城市化进程的日益推进,在原有的卫星城周边,又兴建了11个能够缓解老城人口压力、分散中心城职能的新城,其中包含大兴、房山、昌平、延庆等,因此连接老城和新城的高速路沿线公交线路分布较为密集。
(4) 人流集中区域附近公交线网分布密集。如北四环西边的中关村一带,聚集着北京各大高校和科技产业园区;中央商务区(CBD)一带则是北京主要的商业金融区域;考虑其交通便利性,这些地方的公交线网密度应该较高。
3 结语结合可视化技术对于现有公交网络进行分析评价是交通规划中重要的一环,也是研究城市公交运行的基础,本文研究实现了基于道路的公交线网分布可视化和利用热力图的可视化方法,同时结合可视化结果分析了北京市公交线网的结构分布特点,对于评价现有公交线路分布状况具有实用价值和重要意义。下一步将通过结合客流数据,并按照断面对道路进行分割,更深入地分析公交客流和空间位置的相关性,为公交线路的规划和优化提供帮助。
[1] | 王国晓, 王琳颖, 李晨. 城市公交线网优化与评价方法探索[J]. 城市建设理论研究(电子版), 2015, 5(28) . |
[2] | 王振报, 陈艳艳, 朱跃华. 多层次公交线网规划实用方法[J]. 北京工业大学学报, 2011, 37(2): 231–236. |
[3] | 任磊, 杜一, 马帅, 等. 大数据可视分析综述[J]. 软件学报, 2014, 25(9): 1909–1936. |
[4] | 姜晓睿, 田亚, 蒋莉, 等. 城市道路交通数据可视分析综述[J]. 中国图象图形学报, 2015, 20(4): 454–467. DOI:10.11834/jig.20150401 |
[5] | 蒲剑苏, 屈华民, 倪明选. 移动轨迹数据的可视化[J]. 计算机辅助设计与图形学学报, 2012, 24(10): 1273–1282. DOI:10.3969/j.issn.1003-9775.2012.10.004 |
[6] | 王运静, 李强. 北京市地面公共交通线路网现状评价[J]. 交通运输系统工程与信息, 2007, 7(5): 135–141. |
[7] | 吕卫锋, 吴东东, 诸彤宇. 基于向量识别的启发式路径推测算法[J]. 计算机学报, 2009, 32(7): 1443–1450. |
[8] | 栾学晨, 杨必胜, 李秋萍. 基于结构模式的道路网节点匹配方法[J]. 测绘学报, 2013, 42(4): 608–614. |
[9] | 张云菲, 杨必胜, 栾学晨. 利用概率松弛法的城市路网自动匹配[J]. 测绘学报, 2012, 41(6): 933–939. |
[10] | 王鹏, 郑贵省, 王元. 基于多相似度量指标的路网匹配算法研究[J]. 微型机与应用, 2016, 35(1): 19–22, 26. |