一种城市共享单车停放区自动编码方法研究 | ![]() |
在经济社会高速发展的今天,人们的生活节奏越来越快,时间、效率成为社会公众尤其是上班族普遍关注的话题。虽然城市交通基础设施日渐完善,个人汽车也越来越普及,交通拥堵问题仍然是制约城市发展的重大问题之一[1]。共享单车是近几年兴起一种既简单又方便的出行模式,用户规模呈现了爆炸式的增长态势[2]。共享单车的出现满足了人们出行“最后一公里”的需求,减少了运输成本,提高了城市的通行效率[3],同时也宣扬了一种低碳出行的生活方式,符合当今节能减排的发展要求。
然而,由于运营商粗放式投入、部分公民道德素质缺失、政府监管机制不到位等各方面的原因,当前共享单车随意停放的现象较为普遍,不仅影响市容,也从一定程度上妨碍城市交通。因此,有必要通过测绘技术手段,全面摸清停放区情况,提供精准停放区位置坐标,为后续设置电子围栏、实施定点停车提供数据支撑。本文以厦门市为例介绍共享单车停放区(下文简称“停放区”)编码方法。
1 共享单车停放区自动编码方法 1.1 总体技术路线为方便公众使用,停放区一般设置在道路两侧人行道或自行车专用道上,因此,按照道路名称对停放区进行编码符合停放区的分布情况,也方便进行查找和定位。为保证编码的连贯性,对道路两侧的停放区分别进行编码。总体思路为:将道路抽象为折线,对道路两侧各停放区查找与其距离最近的道路节点,利用停放区所匹配的道路节点的序号即可确定停放区的先后顺序,然后按照指定的编码结构进行顺序编码。
ArcGIS系列产品在行业中具有重要的地位,是数据建库管理的主要平台[4],对于地理信息系统软件而言,除了需要具有数据管理功能外,还要求能够解进行空间分析解决一些复杂的问题[5],ArcGIS在地理信息系统中集空间数据模型的建立、编辑处理、分析应用于一体[6],方便快捷。本文以ArcGIS空间数据库为数据存储容器进行数据分析和处理,利用ArcGIS软件进行相关的数据编辑和分析,实现对共享单车停放区的编码。
1.2 基础数据准备及预处理本研究涉及到的基础数据包括共享单车停放区测量数据和路网数据。对停放区测量数据进行构面,存储于面状图层中,每个停放区对应一个面状实体。路网数据为线状图层,包含道路名称及道路宽度信息,可从已有城市基础地理信息数据库中提取,如果为面状数据则需进行道路中心线提取。如果共享单车图层和道路图层空间参考不一致还需进行投影或投影变换,以保证后续空间分析操作的正确性。
1.3 同名道路融合城市道路中,同一条道路可能会被其他道路、交通附属设施或其他地物分隔成多个路段,表现为道路名称相同但空间上不连续,如图 1(a)中的斗西路;或由于在矢量化时分段采集未合并从形成多个路段,表现为道路名称相同且线首位端点相连,如图 1(a)中的厦禾路。为了保证后续处理中停放区沿道路方向编码的关联性和唯一性,需对相同的道路名进行合并。利用ArcGIS中的融合工具(Dissolve)将同一道路名的所有路段合并为单个空间对象,图 1(b)中视图区域中,厦禾路3个路段融合为一条连续的道路线;斗西路2个路段融合为一条多部件(multipart)道路线,两部分共用同一个ID为一个整体。
![]() |
图 1 多路段道路融合 Fig.1 Road of Multi-part Dissolve |
1.4 道路-停放区缓冲区分析
周边查找是一项地理空间分析功能,用于从大范围的海量地理要素中检索出局部的地理要素[7],其中,缓冲区查找是应用最普遍的一种周边分析方法,用于在指定的距离内查找特定对象[8],本文采用缓冲区分析方法确定停放区所属最近的道路。对于线对象,ArcGIS中的缓冲区工具(Buffer)可以生成两侧或者任意一侧的缓冲区,本研究拟对道路两侧的停放区分开编码,故分别生成两侧的缓冲区。由于不同道路宽度各不相同,同一条道路不同路段的宽度也不完全一致,缓冲区构建时以融合前的道路线为中心线,以“路段宽度×1/2+外扩距离”为动态缓冲宽度分别生成道路中心线两侧的缓冲区,其中,外扩距离采用20 m固定值。将道路线矢量化前进方向左侧的缓冲区标记为road_left,右侧的缓冲区标记为road_right。道路两侧缓冲区生成后,对相同道路名同一侧的缓冲区进行融合,得到的道路两侧缓冲区效果如图 2所示。从图 2中可以看出,大部分停放区已落入缓冲区范围中。
![]() |
图 2 道路缓冲区 Fig.2 Road Buffers |
叠加分析方法是GIS中常用的空间信息提取方法[9, 10],利用ArcGIS中的叠加分析工具(如相交、空间连接等)可提取停放区所在缓冲区对应的道路名称及位于道路的哪一侧,若停放区同时落在多条道路的缓冲区中则提取其中一条道路名,如按道路等级提取等级最高的,或者以按距离提取距离最近的,本文采用后一种方法。空间叠加分析后的部分停放区属性信息如表 1所示。
表 1 道路-停放区缓冲区分析结果 Tab.1 Road-Parking Area Buffer Analysis Result |
![]() |
1.5 停放区编码算法设计
本研究对道路两侧的停放区分别进行编码:左侧停放区的编码方式为“道路名称-L-停放区序号”,右侧停放区的编码方式为“道路名称-R-停放区序号”,同一条道路两侧的停放区序号均从1开始,沿道路方向递增。下面以道路左侧停放区编码过程为例,借助ArcObject编程接口,设计编码算法如下:
1)从§1. 4中得到的停放区属性表中检索所有道路名称,去重后存储在道路名称列表中。
2)遍历道路名称列表,每次取出一条道路,执行后续步骤3)~步骤7)的处理过程。
3)根据道路名从融合的道路线图层中提取当前道路的线几何对象(Polyline),解析道路线上各个节点(Node)序号及对应的坐标并存储在节点集合中。
4)从停放区图层中读取road_left为当前道路名的所有停放区,计算各停放区质心坐标,将各停放区ID及质心坐标存储在停放区集合中。
5)遍历步骤4)生成的停放区集合中的各个停放区,计算与步骤3)生成的道路节点集合中各个节点的距离,取距离最近道路节点的序号,与停放区ID构成“停放区ID-最近节点序号”关系序列。
6)对“停放区ID-最近节点序号”关系序列按最近节点序号进行排序,由于空间数据库中线对象的节点是是沿着线绘制方向存储的,利用最近节点序号即可确定各停放区的先后顺序。
7)对排序后的停放区按“道路名称-L-停放区序号”方式进行编码,其中,停放区序号从1开始,按停放区先后顺序依次递增,编码结果存入停放区属性中。
8)结束当前道路停放区的编码,转到下一条道路,直至所有道路的停放区编码完毕。
道路右侧停放区编码过程上述道路左侧停放区编码过程步骤相同,此处不再赘述。
2 实验结果分析与改进ArcObject是整个ArcGIS的核心与基础,利用它可以避开底层开发的复杂过程,快速搭建GIS的功能模块[11]。在Visual Studio 2012环境下,利用以C#语言调用ArcObject相关接口,对§1. 5中的算法进行编程实现,编码工具界面如图 3所示。
![]() |
图 3 编码工具界面 Fig.3 Coding Tool Interface |
编码结果如图 4所示,从图 4(a)中可以看出,道路两侧的停放区已分开编码,但停放区的序号并未全部沿道路线方向递增,而是存在局部交错。主要是由于道路线节点间距过大,导致停放区匹配最近道路节点时偏离较远,以枋湖路右侧的停放区为例,R-23停放区和R-22停放区最近的道路节点都为22号道路线节点,因此在算法步骤6)中对“停放区ID-最近节点序号”序列按最近节点序号排序时,无法确定两个点的先后关系,最终按停放区在数据库中检索的顺序确定先后顺序,导致了编码结果不符合预期效果。因此,在执行停放区排序过程前,先利用ArcGIS中的增密工具(Densify)对道路线的节点进行内插,可有效避免停放区匹配错误,如图 4所示。从图 4(b)中可以看到编码局部交错的问题已经消除,证明该方法是有效可行的。
![]() |
图 4 改进前后的停放区编码效果图 Fig.4 Coding Result After Between Before Improvement |
3 结束语
本文探索了一种共享单车停放区沿道路方向自动编码的方法,借助ArcGIS地理处理工具及ArcObject编程接口对算法进行了实现。实验结果表明,利用该方法可以对道路两侧的共享单车停放区分别沿道路方向自动编码。与人工编码方式相比本方法具有自动化程度高、编码连续性好、不重不漏等优点,同时便于查询和检索。
[1] |
杨忠. 基于GIS的共享单车站点最优选择查询系统设计[J]. 计算机测量与控制, 2018, 26(7): 233-237. |
[2] |
李小璐. 共享单车对城市居民出行方式选择的影响——以聊城为例[J]. 人民公交, 2018(2): 67-69. DOI:10.3969/j.issn.1674-8050.2018.02.019 |
[3] |
周章荣, 蔡慧贤, 何妍, 等. 共享单车的现状分析及管理建议[J]. 中国集体经济, 2018(33): 86-88. DOI:10.3969/j.issn.1008-1283.2018.33.045 |
[4] |
李锦来, 线东升. 浅谈ArcGIS和Cass在高速公路和国道测量中的应用[J]. 测绘与空间地理信息, 2017, 40(5): 115-117. DOI:10.3969/j.issn.1672-5867.2017.05.036 |
[5] |
张晓楠, 任志国, 曹一冰. 空间分析模型与GIS无缝集成研究[J]. 地理空间信息, 2014, 12(2): 156-158. DOI:10.11709/j.issn.1672-4623.2014.02.056 |
[6] |
黄梦龙, 陈子越. 基于Geodatabase的基础地理信息数据库集成应用框架[J]. 地理空间信息, 2016, 14(5): 21-24. DOI:10.3969/j.issn.1672-4623.2016.05.007 |
[7] |
曹浩泽. Geohash编码的周边查找算法优化[J]. 测绘地理信息, 2019, 44(6): 89-92. |
[8] |
张文元, 谈国新, 孙传明. 一种景区智能导游系统的设计与实现[J]. 测绘地理信息, 2018, 43(5): 79-84. |
[9] |
李德仁, 黄俊华, 邵振峰. 面向服务的数字城市共享平台框架的设计与实现[J]. 武汉大学学报·信息科学版, 2008, 33(9): 881-885. |
[10] |
于杰, 孙伟雪, 刘毅. 基于ArcGIS叠加分析工具在耕地质量等别年度更新评价中的应用[J]. 测绘与空间地理信息, 2016, 39(3): 146-148. |
[11] |
赖建智. 农村土地承包地块示意图批量自动生成方法研究[J]. 测绘地理信息, 2018, 43(5): 104-107. |