董竹,李新雙,陳小虎
(成都市勘察測繪研究院,四川 成都 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 輸出的道路面和中心線
采集道路中心線是地形圖入庫和地圖縮編的剛性需求,研究表明,該方法適用于道路數據不經規范化預處理的情況下,自動補充不連貫道路邊線求取中心線,既能減少作業員分幅采集中心線的接邊工作量,又不需要編輯原始數據,在生產實踐中具有現實意義。