陳相
(上海市測繪院,上海 200063)
城市綜合管網(wǎng)與人們的生活息息相關(guān),是保障城市安全運行的重要基礎(chǔ)設(shè)施,被稱為城市“生命線”[1]。近年來由于管網(wǎng)事故頻發(fā),造成了巨大的人身和經(jīng)濟(jì)損失,李克強(qiáng)總理在調(diào)研時曾強(qiáng)調(diào)既要重“面子”,更要重視城市的“里子”,因此城市管網(wǎng)科學(xué)智慧管理,保障管網(wǎng)安全成為政府當(dāng)前的重要工作[2]。
隨著地理信息技術(shù)(GIS)等技術(shù)的發(fā)展,給城市地下管網(wǎng)信息系統(tǒng)的建設(shè)提供了新的方向[3]。利用這些核心技術(shù),依托“信息化”“數(shù)字化”手段,各地政府建立了城市綜合管網(wǎng)信息系統(tǒng),達(dá)到了城市地下管網(wǎng)的綜合管理的目標(biāo),能夠?qū)崿F(xiàn)綜合管網(wǎng)數(shù)據(jù)信息的輸入、存儲、查詢、編輯、檢索、分析、輸出以及共享應(yīng)用等[4,7]。
目前,大部分城市綜合管網(wǎng)數(shù)據(jù)庫均使用GIS數(shù)據(jù)存儲方式,即使用諸如Oracle Spatial、PostgreSQL等直接存儲矢量綜合管網(wǎng)數(shù)據(jù),以點線面方式進(jìn)行存儲。而在現(xiàn)實中的施工、設(shè)計、開挖等外業(yè)現(xiàn)場作業(yè)過程中,作業(yè)人員通常仍需要dwg格式的綜合地下管線圖作為作業(yè)依據(jù),于是如何快速準(zhǔn)確地將GIS數(shù)據(jù)庫中的綜合管網(wǎng)數(shù)據(jù)輸出成為dwg格式的綜合管線圖成為亟須解決的問題,也是城市綜合管網(wǎng)信息系統(tǒng)的重要組成部分[9,10]。
本文結(jié)合城市綜合管網(wǎng)數(shù)據(jù)的特點,面向綜合管網(wǎng)全生命周期管理,定制管線制圖模板,研究從矢量數(shù)據(jù)庫到CAD管線圖的輸出轉(zhuǎn)換,探索自動扯旗標(biāo)注的方法,最終通過編碼,開發(fā)工具,實現(xiàn)管線自動出圖,應(yīng)用于實際施工作業(yè)和應(yīng)急供圖。
隨著GIS技術(shù)的發(fā)展,各大主流數(shù)據(jù)均可以支持和存儲空間數(shù)據(jù),即采用Geodatabase空間數(shù)據(jù)模型組織和管理空間數(shù)據(jù),并實現(xiàn)數(shù)據(jù)的存儲。Geodatabase能夠同時存儲空間數(shù)據(jù)和屬性數(shù)據(jù),并且保持空間數(shù)據(jù)的精度。
城市綜合管網(wǎng)數(shù)據(jù)是綜合地下管線,主要包括電力、通信、給水、排水、燃?xì)?、工業(yè)、長輸?shù)阮悇e。地下管線數(shù)據(jù)有自身的特點,某一類地下管線數(shù)據(jù)通常包括管點、管線段和附屬設(shè)施面三個圖層,空間要素形式分別為點、線和面。三類空間要素數(shù)據(jù)均有對應(yīng)的屬性信息,以確保能夠準(zhǔn)確地進(jìn)行輸出。輸出的綜合地下管線圖是根據(jù)圖幅號進(jìn)行劃分,因此,屬性信息應(yīng)包括圖幅號,其他應(yīng)包括的屬性信息還有管線類別、管徑、材質(zhì)、埋設(shè)方式、埋深等,用于扯旗標(biāo)注。
傳統(tǒng)的綜合地下管線圖通過人工制作,無法實現(xiàn)自動化,費時費力,故要想實現(xiàn)綜合地下管線的自動出圖,除了建立管線數(shù)據(jù)的模型外,還應(yīng)該設(shè)計管線圖的模板和符號,這主要包括要素模板、符號模板和圖幅模板。
(1)要素模板。綜合地下管線圖的核心是點線面要素,其中線和面要素主要通過顏色、線寬、線型來區(qū)分不同類別,從而實現(xiàn)模板化。
(2)符號模板。管點要素主要是管點所在的附屬設(shè)施來表達(dá),如閥門、窨井、變電箱等。所以為了便于快速出圖,將所有可能出現(xiàn)的管點附屬物進(jìn)行梳理,并預(yù)先制作成CAD塊符號,后期在出圖工具中可以直接調(diào)用這些塊符號,進(jìn)行加載渲染。
(3)圖幅模板。綜合地下管線圖有規(guī)定的圖幅輪廓要素,包括圖框、圖名、圖幅號、編制單位等要素,這部分主要確定好圖幅中各要素的具體內(nèi)容和位置,按照國家標(biāo)準(zhǔn)的圖式規(guī)范要求制作成模板形式,如表1、表2所示。
管線要素模板 表1
管線符號模板(部分) 表2
扯旗標(biāo)注是綜合管線圖中十分重要的部分,用以說明管線圖中管線的類別、材質(zhì)、規(guī)格、埋深等屬性信息。一直以來自動扯旗標(biāo)注都是地下管線自動出圖的一個難點,既要保證標(biāo)注的準(zhǔn)確性,又要考慮到要素之間的壓蓋關(guān)系。因此本文提出一種半自動的人機(jī)結(jié)合的自動扯旗標(biāo)注方式,即用戶手工指定扯旗標(biāo)注所在的位置,系統(tǒng)根據(jù)該位置,自動生成扯旗標(biāo)注。
自動扯旗的過程包括根據(jù)用戶指定的位置繪制出一根與該位置最鄰近管線相垂直的扯旗線,隨后計算出與該扯旗線相交的所有管線,并讀取出相應(yīng)的屬性信息,最后依據(jù)扯旗的樣式,依次以標(biāo)注的形式繪制對應(yīng)的標(biāo)注文本。
假設(shè)用戶指定點坐標(biāo)為(x0,y0)
根據(jù)鄰近搜索,得到該點最近的管線段的起點和終點坐標(biāo)為(x1,y1)和(x2,y2),從而計算出該管線段的直線方程為:
根據(jù)垂線方程,計算出扯旗線的方程為:
根據(jù)扯旗線的公式,設(shè)定扯旗線的長度,從而確定扯旗線的位置。
從地下管線矢量數(shù)據(jù)庫到分幅的綜合地下管線圖,實現(xiàn)這一過程主要包括四個步驟。
管線調(diào)圖:輸入需要輸出的綜合地下管線圖的圖幅號,系統(tǒng)從數(shù)據(jù)庫中讀取對應(yīng)的綜合管線數(shù)據(jù)進(jìn)行分層渲染繪制,管線、附屬設(shè)施面按照要素模板繪制,管點通過基于附屬物來進(jìn)行繪制,即如果該點沒有附屬物,不繪制該點;該點有附屬物,在該點處插入對應(yīng)的附屬物塊狀符號。
圖幅整飾:按照設(shè)定的圖幅模板為管線圖添加圖幅信息,包括圖幅框線、管線圖標(biāo)題、比例尺、圖幅號等信息;同時根據(jù)圖幅范圍對管線要素進(jìn)行裁剪,去除圖幅范圍以外的要素信息。
扯旗標(biāo)注:扯旗標(biāo)注是綜合管線圖的重要組成部分,指定扯旗標(biāo)注的位置,系統(tǒng)自動生成扯旗標(biāo)注,同一幅地下綜合管線圖可以有一個或多個扯旗標(biāo)注。
疊加地形圖:地下管線圖無法獨立存在,需要以基礎(chǔ)地形圖作為底圖來進(jìn)行襯托,在此部分需要將制作好的分幅地形圖加載到系統(tǒng)中以作為底圖。
至此一幅綜合地下管線圖制作完成。
考慮到綜合地下管線圖通常為dwg格式,因此本文中采用基于.NET平臺的CAD二次開發(fā)技術(shù),依托AutoCAD作為開發(fā)平臺進(jìn)行實現(xiàn)。自AutoCAD 2005版本起,Autodesk公司推出了用.NET開發(fā)AutoCAD的編程接口,它的實質(zhì)是通過Managed C++/CLR技術(shù)對VC++的ObjectARX進(jìn)行封裝。到目前Autodesk公司已經(jīng)完成對大部分ObjectARX編程接口的封裝。這種編程方式難度適中,能夠訪問大部分的編程接口。ObjectARX的應(yīng)用程序能在運行期間實時擴(kuò)展AutoCAD,共享AutoCAD地址空間,因此性能較為強(qiáng)大,以至于AutoCAD自身的許多功能模塊都是由ObjectARX進(jìn)行制作[5,6,8],考慮到軟件的通用性和兼容性,本文中采用的是AutoCAD 2012版本進(jìn)行二次開發(fā)。
本文中,地下管線數(shù)據(jù)采用Oracle Spatial存儲,基于AutoCAD平臺,通過.NET進(jìn)行二次開發(fā)。用戶只需輸入所輸出圖幅的圖幅號,并進(jìn)行少量的交互操作,即可完成一幅綜合地下管線圖的制作(圖1)。經(jīng)過多次實現(xiàn)與測試,采用本文中的技術(shù)方式能夠?qū)崿F(xiàn)管線的自動化出圖,平均一幅綜合管線圖的制作時間在 1 min以內(nèi),并且扯旗標(biāo)注的準(zhǔn)確度較高,該方法能夠大大減少人工參與,提高工作效率。
圖1 綜合地下管線圖
針對地下管線數(shù)據(jù)庫自動出圖中遇到的問題和難度,筆者采用創(chuàng)新的解決方案,主要提煉為以下3種技術(shù)。
(1)地下管線CAD圖自動輸出技術(shù)?;贏utoCAD的二次開發(fā),實現(xiàn)地下管線數(shù)據(jù)從GIS數(shù)據(jù)庫到CAD圖的自動化輸出,實現(xiàn)CAD中線型、顏色、符號以及圖幅輪廓要素的自動化配置。
(2)自動扯旗標(biāo)注技術(shù)。本文提出一種自動扯旗標(biāo)注方法,由用戶指定扯旗標(biāo)注所在的位置,系統(tǒng)根據(jù)該位置依據(jù)公式算法,自動生成扯旗標(biāo)注,既解決扯旗標(biāo)注繪制復(fù)雜,又解決扯旗標(biāo)注易壓蓋的問題。
(3)基于ObjectARX的二次開發(fā)技術(shù)。基于ObjectARX的應(yīng)用程序能在運行期間實時擴(kuò)展AutoCAD,本文利用該技術(shù),基于AutoCAD平臺進(jìn)行二次開發(fā),能夠?qū)崿F(xiàn)與Oracle等空間數(shù)據(jù)的交互,實現(xiàn)復(fù)雜功能。
針對當(dāng)前地下管線無法實現(xiàn)自動出圖,綜合地下管線制作人工參與量大、出圖效率低等現(xiàn)狀,本文基于要素符號模板,基于AutoCAD平臺,設(shè)計并實現(xiàn)了綜合地下管線自動出圖工具系統(tǒng),實現(xiàn)了綜合地下管線圖的自動符號化、自動扯旗標(biāo)注、自動圖廓整飾,只需少量人工干預(yù)即可快速成圖并輸出打印。該系統(tǒng)工具目前已應(yīng)用上海市浦東新區(qū)等多地的城市地下管線綜合管理系統(tǒng)中,具有一定的推廣價值。