董竹,李新双,陈小虎
(成都市勘察测绘研究院,四川 成都 610081)
制图工作中,将大比例尺地形图缩编为小比例尺地形图时,需要把依比例尺的道路综合为半依比例尺的单线要素;随着电子地图以及GIS系统在各行业中的深入应用,GIS数据仅有道路边线已不能满足需求,基于数据连通性和系统分析的需要,更多的属性信息要求挂接在中心线上,目前采集中心线的方法主要依赖于人工,本文介绍一种利用FME软件提取道路中心线的技术方法。
CASS与ArcGIS是常用的测图软件,目前CASS下生产道路中心线,一般是采用“地物编辑”工具栏下“求中心线”工具,该方法需要手工输入中心线编码然后点选道路两侧边线才能生成中心线,对于路网密集区域,工作量大且容易遗漏。
ArcGIS下生产中心线,在制图综合工具箱下也有“提取中心线”的辅助工具,利用道路边线提取中心线,该方法对道路边线质量要求高,道路边线间断,路网复杂提取效果就不好。若能将道路边线补充完整,无论是FME下还是ArcGIS下都能生成中心线,所以技术路线设计上,主要是利用FME解决道路完整性的问题。将不连续的道路边线利用Snapper、LineJoiner函数自动捕捉和连接,并获取到道路各端口坐标,然后寻找各端口最近点的坐标,利用VertexCreator函数补充连接,将中断部分补充完整,最后利用完整的道路边线将道路构面,利用构面后的成果再在ArcGIS下生成中心线,ArcGIS平台提取中心线效果如图1所示。
图1 ArcGIS平台提取中心线效果
约180 km2CASS格式成都坐标系下的 1∶2 000比例尺全要素地形图,道路放置于“DLSS”层,要素带有CASS编码。
项目中收集到资料为大比例尺地形图,要素非常全,主要用于构面的道路要素有主干道、次干道、国省县乡道面边缘线、机耕路、乡村路、内部道路、桥等要素。利用FME软件的TestFilter函数,将需要参与运算的要素单独提取出来。另外因为2000地形图要素多,数据量较大,在数据读入的过程中必须要考虑到数据的容载问题,避免因读入数据过多而内存不足。
技术路线如图2所示。
图2 技术路线
FME通过定制综合转换器,实现从一种格式到另一种格式的转换,在转换过程中,实现对数据的重构。利用非连续的道路边线构面主要转换流程如下:
(1)选择源文件
因为函数需要通过CASS编码来过滤掉不需要的要素,所以读入数据时不能选普通的DWG格式,而应该选择South CASS DWG格式,同时为减少数据读入过程中的容载,应分层仅读入“交通”,读入数据设置如图3所示。
图3 读入数据设置
(2)选择目标文件
因需要在ArcGIS平台下对面成果文件进行后处理,所以选择目标文件的格式为SHP格式,并选择存放路径同时定义目标文件的属性结构。
(3)定义转换器
转换器的目的就是为了实现从源文件到目标文件的映射,实现对数据的重构。本次转换中主要经过线过滤、线前期处理、找到线起止端点、找到离起止端点最近的端点,相邻端点连线,线构面,面成果过滤等步骤,如表1所示,主要采用了TestFilter、LineJoiner、CoordinateExtractor、NeighborFinder、VertexCreator、Intersector、AreaBuilder等转换器,将非连续的道路边线,通过一系列综合转换器整理为连续完整的面,并利用道路长宽比大的特性将其分离。
模板使用的转换器 表1
(4)生成中心线
如图4所示,经过FME模板化处理后获取到道路面和其他面,在ArcGIS平台下后处理,将道路面利用Polygon to line转换为线,此时线一定是闭合线,使用打断线随意打开一个缺口,再使用Generalization工具箱下的Collapse Dual Lines To Centerline命令,即生成测区完整的中心线。
图4 FME定义模板
(5)成果分析
利用定制模板,可生成完整道路面,经ArcGIS后处理后,获得了完整的道路中心线数据,如图5所示,为提取边线不完整的复杂路网中心线提供了一种新方法。
图5 输出的道路面和中心线
采集道路中心线是地形图入库和地图缩编的刚性需求,研究表明,该方法适用于道路数据不经规范化预处理的情况下,自动补充不连贯道路边线求取中心线,既能减少作业员分幅采集中心线的接边工作量,又不需要编辑原始数据,在生产实践中具有现实意义。