楊娜娜,張新長,黃健鋒
(1. 中山大學地理科學與規(guī)劃學院,廣東 廣州 510275; 2. 佛山市禪城區(qū)國土城建與稅務(wù)局,廣東 佛山 528000)
The Technology and Research on Regularization and Transformation of
CAD Planning Data for GIS Spatial Database
YANG Nana,ZHANG Xinchang,HUANG Jianfeng
?
CAD規(guī)劃成果數(shù)據(jù)GIS建庫的技術(shù)與研究
楊娜娜1,2,張新長1,黃健鋒1
(1. 中山大學地理科學與規(guī)劃學院,廣東 廣州 510275; 2. 佛山市禪城區(qū)國土城建與稅務(wù)局,廣東 佛山 528000)
The Technology and Research on Regularization and Transformation of
CAD Planning Data for GIS Spatial Database
YANG Nana,ZHANG Xinchang,HUANG Jianfeng
摘要:提出了一套較為完善的CAD規(guī)劃成果數(shù)據(jù)GIS建庫的方案和技術(shù)實現(xiàn)流程。該技術(shù)使用AutoCAD.NET API組件和ArcGIS Engine二次開發(fā)組件,在AutoCAD軟件平臺中開發(fā)規(guī)劃數(shù)據(jù)的規(guī)整工具和格式轉(zhuǎn)換器?;诮y(tǒng)一的要素編碼規(guī)則和圖形擴展字典存儲屬性數(shù)據(jù)的方法,有效地實現(xiàn)了CAD圖形和屬性信息的一體化管理,并最終完成了CAD數(shù)據(jù)到GIS數(shù)據(jù)的無縫轉(zhuǎn)換,真正實現(xiàn)了異構(gòu)數(shù)據(jù)的同化。試驗結(jié)果證明,該技術(shù)具有良好的實用性和平臺通用性。
關(guān)鍵詞:規(guī)劃成果數(shù)據(jù);GIS建庫;格式轉(zhuǎn)換;異構(gòu)同化;AutoCAD.NET API
一、引言
規(guī)劃成果數(shù)據(jù)是城市規(guī)劃GIS數(shù)據(jù)庫建設(shè)最重要的數(shù)據(jù),以GIS作為規(guī)劃成果數(shù)據(jù)管理的基礎(chǔ)平臺,為城市GIS的專題信息提取、空間分析、決策管理、信息共享提供了良好的平臺,是數(shù)字城市和智慧城市建設(shè)的有效手段[1]。目前大部分規(guī)劃成果數(shù)據(jù)采用AutoCAD軟件繪制,其與GIS數(shù)據(jù)結(jié)構(gòu)的差異性及圖屬一體化表達的薄弱性,導致原始積累的大量規(guī)劃成果數(shù)據(jù)無法快速建庫,是制約GIS系統(tǒng)深入應(yīng)用的瓶頸所在[2]。因此,探討和解決規(guī)劃成果數(shù)據(jù)GIS建庫的問題已經(jīng)成為規(guī)劃行業(yè)信息化建設(shè)的重難點之一。
規(guī)劃成果數(shù)據(jù)GIS建庫需要解決以下技術(shù)問題:①制定規(guī)劃成果數(shù)據(jù)建庫標準與編碼規(guī)則;②圖形和屬性信息一體化管理;③設(shè)計數(shù)據(jù)規(guī)整流程和工具;④實現(xiàn)數(shù)據(jù)之間的無縫轉(zhuǎn)換。目前,許多學者提出了各自的解決辦法,陳明輝[2]探討了規(guī)劃成果數(shù)據(jù)建庫的方法與思路,開發(fā)了規(guī)劃成果數(shù)據(jù)建庫軟件Xmap,然而其平臺通用性不高,數(shù)據(jù)轉(zhuǎn)換功能略為簡單。王警[3]和李勇平[4]采用了XDATA擴展實體數(shù)據(jù)方法實現(xiàn)了圖形和屬性信息的關(guān)聯(lián)。張雪松[5]分析了傳統(tǒng)CAD和GIS數(shù)據(jù)相互轉(zhuǎn)換方法的不足,給出一種可行的數(shù)據(jù)解譯器組成結(jié)構(gòu),但僅以地籍數(shù)據(jù)為重點,類似的還有利用Geoway作為中間件實現(xiàn)數(shù)據(jù)的轉(zhuǎn)換[6-7],該類技術(shù)靈活性不足,且程序復雜。另外,關(guān)于CAD地形圖數(shù)據(jù)GIS建庫的研究[8-10]可借鑒于規(guī)劃數(shù)據(jù)建庫的問題中。本文在總結(jié)和改進前人工作的基礎(chǔ)上,提出了一套完善的CAD規(guī)劃成果數(shù)據(jù)規(guī)整入庫的解決方案,并順利應(yīng)用在佛山市規(guī)劃成果數(shù)據(jù)庫的建設(shè)中,從真正意義上解決了異構(gòu)數(shù)據(jù)同化的難題。
二、規(guī)劃成果數(shù)據(jù)GIS建庫標準與編碼規(guī)則
佛山市規(guī)劃成果數(shù)據(jù)主要分為5類:總體規(guī)劃成果、分區(qū)規(guī)劃成果、控制性詳細規(guī)劃成果(以下簡稱控規(guī)數(shù)據(jù))、修建性詳細規(guī)劃成果、專題規(guī)劃成果,以CAD文件格式(*.dwg)為主。各類規(guī)劃數(shù)據(jù)包含相應(yīng)的專題圖,盡管每種專題圖突出的重點不一,但存在輔助信息重復的現(xiàn)象,如果將每個專題圖的內(nèi)容全部導入數(shù)據(jù)庫,將導致數(shù)據(jù)庫的存儲冗余,因此需對規(guī)劃成果數(shù)據(jù)進行嚴謹?shù)姆诸惙謱?、要素編碼規(guī)則制定等,使其結(jié)構(gòu)清晰,內(nèi)容豐富。
1. 規(guī)劃成果數(shù)據(jù)分類分層框架
按照統(tǒng)一的地理坐標對地理實體要素進行分層疊加是數(shù)據(jù)組織的基本思路[2]。根據(jù)規(guī)劃空間數(shù)據(jù)的特點,本文依照“數(shù)據(jù)庫—子庫—專題分類—圖層”的框架構(gòu)筑規(guī)劃空間數(shù)據(jù)庫,其組織及層次結(jié)構(gòu)如圖1所示。
該結(jié)構(gòu)基于Geodatabase數(shù)據(jù)模型,各類規(guī)劃數(shù)據(jù)分別建立子庫組成城市規(guī)劃成果GIS數(shù)據(jù)庫,子庫中按專題分類建立要素集,而各要素集下也有表征不同特征類型的圖層,即要素類。數(shù)據(jù)分層除按內(nèi)容劃分外,為滿足制圖和GIS數(shù)據(jù)檢索分析的需求,應(yīng)按不同抽象特征類型進行嚴格分層,每層只允許存儲點、線、面和注記一種實體要素。
圖1 規(guī)劃成果GIS數(shù)據(jù)庫組織及層次結(jié)構(gòu)
2. 要素編碼規(guī)則制定
各規(guī)劃成果類型的專題分類較為類似,即要素在圖形表現(xiàn)上基本一致,可統(tǒng)一制定一套編碼規(guī)則[11]。編碼規(guī)則主要按照分類要素集的內(nèi)容進行設(shè)計,編碼方式以4段分組,共7位數(shù)字,如下所示:
XX+XX+XX+X
大類碼+細類碼+要素代碼+類型碼
1) 大類碼:按照專題分類劃分,分為用地規(guī)劃、綜合交通、市政管線、公共配套設(shè)施、綠地水體、文物保護幾類。占兩位編碼。
2) 細類碼:按照大類中的細類劃分。如綜合交通可劃分為道路、鐵路軌道、交通站場和交通設(shè)施等。占兩位編碼。
3) 要素代碼:按照細類的各種圖層劃分,即同一圖層所有要素具有相同編碼,如道路細類可劃分為道路紅線、道路中線、道路附屬線和道路交叉口等。占兩位編碼。
4) 類型碼:按照實體幾何類型來劃分。1表示點,3表示線,7表示面,9表示注記。占一位編碼。
要素編碼用于區(qū)分各類規(guī)劃圖形數(shù)據(jù),可依據(jù)編碼的不同將數(shù)據(jù)存儲到所屬分層中。數(shù)據(jù)規(guī)整的目的是為了給圖形賦予正確的編碼和屬性,而數(shù)據(jù)轉(zhuǎn)換的實現(xiàn)則依賴于要素編碼。
三、規(guī)劃成果數(shù)據(jù)規(guī)整
在滿足規(guī)劃數(shù)據(jù)GIS建庫標準的前提下,需選取合適的操作平臺對CAD數(shù)據(jù)進行規(guī)范化整理,以便于數(shù)據(jù)格式的轉(zhuǎn)換。本文利用Visual Studio 2008和AutoCAD.NET API組件在AutoCAD 2008軟件平臺上開發(fā)了CAD數(shù)據(jù)的規(guī)整工具和操作面板。AutoCAD.NET API組件有助于開發(fā)者利用更多不同的編程語言(本文使用C#編程語言)和環(huán)境訪問CAD格式數(shù)據(jù),通過調(diào)用其封裝好的對象屬性和方法,便捷地獲取用戶所需信息,大大降低了程序開發(fā)難度,增強了規(guī)整工具的平臺通用性。
CAD規(guī)劃數(shù)據(jù)規(guī)整主要包括編碼賦值、編碼檢查、拓撲檢查、屬性賦值、數(shù)據(jù)標準化等操作,具體規(guī)整流程如圖2所示。
1. 編碼賦值
編碼賦值實現(xiàn)入庫圖形數(shù)據(jù)的編碼標識,根據(jù)要素編碼規(guī)則,同一層所有圖形數(shù)據(jù)具有相同的要素編碼。賦值過程若僅用目視識別的方法,其工作量將會非常大,應(yīng)提供更多智能篩選的功能。本文設(shè)計的編碼賦值輔助工具主要包括編碼賦值面板、圖層控制面板和圖形篩選面板。
圖2 AutoCAD地形圖規(guī)整流程
編碼賦值面板用于選擇單個或多個圖形數(shù)據(jù),并對選取的數(shù)據(jù)進行編碼賦值,其中編碼值寫入圖形的自定義擴展字典中,相關(guān)概念將在屬性賦值流程中介紹。
圖層控制面板實現(xiàn)CAD圖層的顯示控制,包括圖層打開和關(guān)閉、凍結(jié)和解凍、鎖定和解鎖,并可依照圖層名稱、顏色、線型等特性篩選圖層。
圖形篩選面板可進一步檢索同類型圖形,如多段線、二維多段線、點、塊參照、閉合線、非閉合線等,以提高工作效率。
2. 編碼檢查
編碼檢查過程首先判斷圖形的編碼值是否存在,其次是圖形的編碼是否正確。如果要素編碼表中不存在該編碼,說明用戶使用了錯誤的賦值方法。另外,還要檢查編碼對應(yīng)圖形幾何類型與圖形的實際幾何類型是否符合,如注記編碼值不能賦到幾何圖形中,線編碼不能賦值在塊參照里。
3. 拓撲檢查
結(jié)合ArcGIS Engine二次開發(fā)組件,首先將CAD圖形轉(zhuǎn)換到臨時個人地理數(shù)據(jù)庫中,然后建立拓撲規(guī)則,最終檢測并修改存在拓撲錯誤的圖形。拓撲檢查功能包括圖形是否閉合、是否存在懸掛點、線段是否重疊或自相交等。為修改拓撲錯誤的圖形,規(guī)整工具提供了幾種拓撲編輯功能,如地塊自動閉合、線段自動連接等。
4. 屬性賦值
規(guī)劃成果數(shù)據(jù)各專題內(nèi)容對屬性的要求不同,其對應(yīng)的屬性字段也不相同。本文采用圖形的擴展字典(extension dictionary)進行屬性存儲,將地物對應(yīng)的屬性字段名稱存儲在字典的擴展記錄(Xrecord)的Name屬性中,而屬性值則記錄在擴展記錄的Data值內(nèi),從而實現(xiàn)圖形數(shù)據(jù)和屬性信息的無縫集成。相對于以往直接存儲屬性信息在圖形實體的XDATA方法,本方法既能滿足屬性存儲的要求,又大大提高了其可擴展和易讀性。具體的屬性存儲結(jié)構(gòu)如圖3所示。
圖3 規(guī)劃成果數(shù)據(jù)屬性存儲的結(jié)構(gòu)
5. 數(shù)據(jù)標準化
由于各個單位的工作人員都可能編輯過未經(jīng)審核的規(guī)劃數(shù)據(jù),導致CAD圖紙上存在很多不滿足規(guī)劃繪圖要求的錯誤和疏漏,如圖層的名稱、顏色、線型、線寬、符號塊等不符合繪圖規(guī)范。數(shù)據(jù)標準化就是利用要素編碼值重新繪制圖形的過程,既然要素編碼是唯一的,其對應(yīng)的CAD圖層和圖形特性也應(yīng)是唯一的,因此筆者利用編碼值獲取圖形對應(yīng)的特性,重新繪制圖形數(shù)據(jù),使CAD規(guī)劃數(shù)據(jù)得到規(guī)范化處理。數(shù)據(jù)標準化包括圖層重命名、分層設(shè)色、線型更改、符號塊更改等流程。所有操作程序均可自動完成。
四、規(guī)劃成果數(shù)據(jù)轉(zhuǎn)換及其關(guān)鍵技術(shù)
數(shù)據(jù)規(guī)整后,將進行CAD數(shù)據(jù)向GIS數(shù)據(jù)的轉(zhuǎn)換。本文在研究二者數(shù)據(jù)格式、圖形幾何特性及二次開發(fā)技術(shù)的基礎(chǔ)上,結(jié)合AutoCAD.NET API組件和ArcGIS Engine組件實現(xiàn)GIS數(shù)據(jù)的創(chuàng)建和入庫。在格式轉(zhuǎn)換過程中,由于CAD實體圖形種類繁多,應(yīng)針對常見的各類實體的特性構(gòu)建正確的轉(zhuǎn)換算法,避免出現(xiàn)幾何或?qū)傩孕畔⒌膩G失,以便最有效地實現(xiàn)數(shù)據(jù)格式的無損轉(zhuǎn)換。其流程如圖4所示。
圖4 CAD數(shù)據(jù)轉(zhuǎn)GIS數(shù)據(jù)流程
1. 創(chuàng)建個人地理數(shù)據(jù)庫
首先創(chuàng)建一個用于存儲轉(zhuǎn)換后數(shù)據(jù)的個人地理數(shù)據(jù)庫,按規(guī)劃成果數(shù)據(jù)的類型創(chuàng)建相應(yīng)的要素集(IFeatureDataSet),以及其包含的所有點(Point)、線(Polyline)、面(Polygon)和注記(Annotation)圖層,并依據(jù)入庫標準添加相應(yīng)的圖層屬性字段。
2. 圖形轉(zhuǎn)換
圖形轉(zhuǎn)換是轉(zhuǎn)換流程中最容易產(chǎn)生信息丟失的一個環(huán)節(jié),其關(guān)鍵是坐標信息的提取與重新組合,由于CAD實體(Entity)形式多樣,其坐標提取較為復雜。常見的幾類CAD實體圖形包括點(DBPoint)、塊參照(BlockReference)、直線(Line)、圓(Circle)、弧線(Arc)、樣條曲線(Spline)、多段線(Polyline)、二維多段線(Polyline2d)和文字(DBText)。針對這些實體圖形,需要讀取其相關(guān)的特性信息,以提取或換算坐標。
1) 對于點和塊參照實體,提取其位置(Position)的X和Y坐標即可,使用ArcGIS Engine接口IPoint記錄坐標信息。
2) 對于直線實體,提取其起點(StartPoint)和終點(EndPoint)的位置,使用ArcGIS Engine接口IPolyline記錄兩對坐標。
3) 對于圓形實體,在獲取其圓心(Center)位置和半徑長度后,使用ArcGIS Engine接口ICircularArc構(gòu)建幾何圓,并最終封裝成IPolyline或IPolygon類型;而對于弧線實體,一般為圓的一部分,還需獲取其對應(yīng)的圓心角(TotalAngle)、自身的起點和終點位置,并使用相同的ArcGIS Engine接口進行轉(zhuǎn)換。
4) 對于樣條曲線實體,由幾何知識可知,獲取其起點、終點以及控制點數(shù)量,運用樣條曲線的生成公式,即可得到擬合的坐標串,最后使用ArcGIS Engine接口IPolyline封裝坐標串。
5) 對于多段線實體,一般由直線(Line)和弧線(Arc)分段構(gòu)成,應(yīng)根據(jù)其分段類型(SegmentType)逐段獲取坐標信息,如為直線,使用方法2)的坐標提取方法;如為弧線,則使用方法3),最后封裝成IPolyline或IPolygon類型。
6) 對于二維多段線實體,其線段類型(Poly2dType)包括SimplePoly、CubicSplinePoly、QuadSplinePoly、FitCurvePoly 4種,根據(jù)線段類型,坐標提取時只讀取相應(yīng)節(jié)點類型(VertexType)的坐標值,最后封裝成IPolyline或IPolygon類型。
7) 對于文字實體,本文為了實現(xiàn)數(shù)據(jù)的無損轉(zhuǎn)換以及保證數(shù)據(jù)的可讀性,將其轉(zhuǎn)換成注記類型。轉(zhuǎn)換過程中除了讀取文字的位置信息外,還需額外獲得其旋轉(zhuǎn)角度和字體高度。使用ITextElement和IFDOAttributeConversion等接口完成注記的生成。
3. 屬性轉(zhuǎn)換
圖形的屬性信息存儲在實體擴展字典的擴展記錄中,轉(zhuǎn)換時先讀取這部分的屬性信息,最后存儲到對應(yīng)圖層的相應(yīng)屬性字段(IField)中。
4. 要素創(chuàng)建與入庫
遍歷CAD數(shù)據(jù)的所有圖形實體,根據(jù)規(guī)整時賦予的編碼值判斷出實體需轉(zhuǎn)換成的幾何類型及所屬的GIS圖層,依照步驟2和步驟3得到的幾何信息和屬性信息創(chuàng)建GIS要素(IFeature),并插入到所屬GIS圖層中。直至所有實體轉(zhuǎn)換完成,轉(zhuǎn)換過程方可結(jié)束。
五、應(yīng)用實例
利用設(shè)計好的規(guī)劃成果數(shù)據(jù)GIS建庫標準、編碼規(guī)則、規(guī)整工具及轉(zhuǎn)換程序,可解決規(guī)劃數(shù)據(jù)GIS建庫的難題。為驗證該技術(shù)的有效性和實用性,以佛山市規(guī)劃成果數(shù)據(jù)的入庫為試驗案例,圖5(a)是原始的CAD規(guī)劃成果數(shù)據(jù),圖5(b)是轉(zhuǎn)換并入庫的規(guī)劃成果數(shù)據(jù)在ArcMap平臺上的顯示效果。通過比較可以發(fā)現(xiàn),原始CAD規(guī)劃成果數(shù)據(jù)與GIS中的圖形要素保持良好的一致,證明了本技術(shù)方案的
可行性。
圖5 實例轉(zhuǎn)換對比圖
參考文獻:
[1]盧新海.多源城市規(guī)劃數(shù)據(jù)的融合與集成方法[J].測繪與空間地理信息,2005,28(4):47-49.
[2]陳明輝,歐陽南江,高益忠.淺談規(guī)劃成果數(shù)據(jù)建庫的方法及實現(xiàn)[J].城市勘測,2006(1) :14-17.
[3]王警.控規(guī)編制中空間數(shù)據(jù)與屬性數(shù)據(jù)的一體化研究[D].上海:同濟大學,2007.
[4]李勇平.DWG到SHP數(shù)據(jù)的一種實用轉(zhuǎn)換方法[J].國土資源信息化,2010(3):29-32.
[5]張雪松,張友安,鄧敏.AutoCAD環(huán)境中組織GIS數(shù)據(jù)的方法[J].測繪通報,2004(11):45-48.
[6]王波,張亮,孫霞.CAD向GIS數(shù)據(jù)的轉(zhuǎn)換入庫[J].地理空間信息,2011,9(3):24-26.
[7]張葉,孫毅中,陳年松.CAD城市基礎(chǔ)數(shù)據(jù)到GIS轉(zhuǎn)換的有關(guān)問題探討[J].測繪與空間地理信息,2007,30(1):94-97.
[8]袁源琳,張新長,黃健鋒,等.AutoCAD地形圖數(shù)據(jù)規(guī)整入庫的研究與應(yīng)用[J].測繪通報,2013 (5): 84-88.
[9]文學東,鐘文軍,祝方雄,等.基于 Geodatabase 的 CAD 到 ARCGIS 數(shù)據(jù)入庫研究[J]. 測繪科學,2006,31(6):100-102.
[10]申勝利,李華.基于ArcEngine的ArcGIS與AutoCAD數(shù)據(jù)轉(zhuǎn)換研究[J].測繪通報,2007(2):41-43.
[11]劉世偉.基于GIS平臺的城市規(guī)劃管理數(shù)據(jù)的組織研究[D].上海:同濟大學,2008.
引文格式: 楊娜娜,張新長,黃健鋒. CAD規(guī)劃成果數(shù)據(jù)GIS建庫的技術(shù)與研究[J].測繪通報,2015(6):44-48.DOI:10.13474/j.cnki.11-2246.2015.0175
作者簡介:楊娜娜(1989—),女,碩士生,主要研究方向為城市GIS與空間信息服務(wù)。E-mail:luckyangna@163.com
基金項目:國家自然科學基金重點項目(41431178);高等學校博士點專項科研基金(20120171110030)
收稿日期:2014-06-21
中圖分類號:P208
文獻標識碼:B
文章編號:0494-0911(2015)06-0044-05