楊娜娜,張新長,黃健鋒
(1. 中山大學地理科學與規劃學院,廣東 廣州 510275; 2. 佛山市禪城區國土城建與稅務局,廣東 佛山 528000)
The Technology and Research on Regularization and Transformation of
CAD Planning Data for GIS Spatial Database
YANG Nana,ZHANG Xinchang,HUANG Jianfeng
?
CAD規劃成果數據GIS建庫的技術與研究
楊娜娜1,2,張新長1,黃健鋒1
(1. 中山大學地理科學與規劃學院,廣東 廣州 510275; 2. 佛山市禪城區國土城建與稅務局,廣東 佛山 528000)
The Technology and Research on Regularization and Transformation of
CAD Planning Data for GIS Spatial Database
YANG Nana,ZHANG Xinchang,HUANG Jianfeng
摘要:提出了一套較為完善的CAD規劃成果數據GIS建庫的方案和技術實現流程。該技術使用AutoCAD.NET API組件和ArcGIS Engine二次開發組件,在AutoCAD軟件平臺中開發規劃數據的規整工具和格式轉換器。基于統一的要素編碼規則和圖形擴展字典存儲屬性數據的方法,有效地實現了CAD圖形和屬性信息的一體化管理,并最終完成了CAD數據到GIS數據的無縫轉換,真正實現了異構數據的同化。試驗結果證明,該技術具有良好的實用性和平臺通用性。
關鍵詞:規劃成果數據;GIS建庫;格式轉換;異構同化;AutoCAD.NET API
一、引言
規劃成果數據是城市規劃GIS數據庫建設最重要的數據,以GIS作為規劃成果數據管理的基礎平臺,為城市GIS的專題信息提取、空間分析、決策管理、信息共享提供了良好的平臺,是數字城市和智慧城市建設的有效手段[1]。目前大部分規劃成果數據采用AutoCAD軟件繪制,其與GIS數據結構的差異性及圖屬一體化表達的薄弱性,導致原始積累的大量規劃成果數據無法快速建庫,是制約GIS系統深入應用的瓶頸所在[2]。因此,探討和解決規劃成果數據GIS建庫的問題已經成為規劃行業信息化建設的重難點之一。
規劃成果數據GIS建庫需要解決以下技術問題:①制定規劃成果數據建庫標準與編碼規則;②圖形和屬性信息一體化管理;③設計數據規整流程和工具;④實現數據之間的無縫轉換。目前,許多學者提出了各自的解決辦法,陳明輝[2]探討了規劃成果數據建庫的方法與思路,開發了規劃成果數據建庫軟件Xmap,然而其平臺通用性不高,數據轉換功能略為簡單。王警[3]和李勇平[4]采用了XDATA擴展實體數據方法實現了圖形和屬性信息的關聯。張雪松[5]分析了傳統CAD和GIS數據相互轉換方法的不足,給出一種可行的數據解譯器組成結構,但僅以地籍數據為重點,類似的還有利用Geoway作為中間件實現數據的轉換[6-7],該類技術靈活性不足,且程序復雜。另外,關于CAD地形圖數據GIS建庫的研究[8-10]可借鑒于規劃數據建庫的問題中。本文在總結和改進前人工作的基礎上,提出了一套完善的CAD規劃成果數據規整入庫的解決方案,并順利應用在佛山市規劃成果數據庫的建設中,從真正意義上解決了異構數據同化的難題。
二、規劃成果數據GIS建庫標準與編碼規則
佛山市規劃成果數據主要分為5類:總體規劃成果、分區規劃成果、控制性詳細規劃成果(以下簡稱控規數據)、修建性詳細規劃成果、專題規劃成果,以CAD文件格式(*.dwg)為主。各類規劃數據包含相應的專題圖,盡管每種專題圖突出的重點不一,但存在輔助信息重復的現象,如果將每個專題圖的內容全部導入數據庫,將導致數據庫的存儲冗余,因此需對規劃成果數據進行嚴謹的分類分層、要素編碼規則制定等,使其結構清晰,內容豐富。
1. 規劃成果數據分類分層框架
按照統一的地理坐標對地理實體要素進行分層疊加是數據組織的基本思路[2]。根據規劃空間數據的特點,本文依照“數據庫—子庫—專題分類—圖層”的框架構筑規劃空間數據庫,其組織及層次結構如圖1所示。
該結構基于Geodatabase數據模型,各類規劃數據分別建立子庫組成城市規劃成果GIS數據庫,子庫中按專題分類建立要素集,而各要素集下也有表征不同特征類型的圖層,即要素類。數據分層除按內容劃分外,為滿足制圖和GIS數據檢索分析的需求,應按不同抽象特征類型進行嚴格分層,每層只允許存儲點、線、面和注記一種實體要素。

圖1 規劃成果GIS數據庫組織及層次結構
2. 要素編碼規則制定
各規劃成果類型的專題分類較為類似,即要素在圖形表現上基本一致,可統一制定一套編碼規則[11]。編碼規則主要按照分類要素集的內容進行設計,編碼方式以4段分組,共7位數字,如下所示:
XX+XX+XX+X
大類碼+細類碼+要素代碼+類型碼
1) 大類碼:按照專題分類劃分,分為用地規劃、綜合交通、市政管線、公共配套設施、綠地水體、文物保護幾類。占兩位編碼。
2) 細類碼:按照大類中的細類劃分。如綜合交通可劃分為道路、鐵路軌道、交通站場和交通設施等。占兩位編碼。
3) 要素代碼:按照細類的各種圖層劃分,即同一圖層所有要素具有相同編碼,如道路細類可劃分為道路紅線、道路中線、道路附屬線和道路交叉口等。占兩位編碼。
4) 類型碼:按照實體幾何類型來劃分。1表示點,3表示線,7表示面,9表示注記。占一位編碼。
要素編碼用于區分各類規劃圖形數據,可依據編碼的不同將數據存儲到所屬分層中。數據規整的目的是為了給圖形賦予正確的編碼和屬性,而數據轉換的實現則依賴于要素編碼。
三、規劃成果數據規整
在滿足規劃數據GIS建庫標準的前提下,需選取合適的操作平臺對CAD數據進行規范化整理,以便于數據格式的轉換。本文利用Visual Studio 2008和AutoCAD.NET API組件在AutoCAD 2008軟件平臺上開發了CAD數據的規整工具和操作面板。AutoCAD.NET API組件有助于開發者利用更多不同的編程語言(本文使用C#編程語言)和環境訪問CAD格式數據,通過調用其封裝好的對象屬性和方法,便捷地獲取用戶所需信息,大大降低了程序開發難度,增強了規整工具的平臺通用性。
CAD規劃數據規整主要包括編碼賦值、編碼檢查、拓撲檢查、屬性賦值、數據標準化等操作,具體規整流程如圖2所示。
1. 編碼賦值
編碼賦值實現入庫圖形數據的編碼標識,根據要素編碼規則,同一層所有圖形數據具有相同的要素編碼。賦值過程若僅用目視識別的方法,其工作量將會非常大,應提供更多智能篩選的功能。本文設計的編碼賦值輔助工具主要包括編碼賦值面板、圖層控制面板和圖形篩選面板。

圖2 AutoCAD地形圖規整流程
編碼賦值面板用于選擇單個或多個圖形數據,并對選取的數據進行編碼賦值,其中編碼值寫入圖形的自定義擴展字典中,相關概念將在屬性賦值流程中介紹。
圖層控制面板實現CAD圖層的顯示控制,包括圖層打開和關閉、凍結和解凍、鎖定和解鎖,并可依照圖層名稱、顏色、線型等特性篩選圖層。
圖形篩選面板可進一步檢索同類型圖形,如多段線、二維多段線、點、塊參照、閉合線、非閉合線等,以提高工作效率。
2. 編碼檢查
編碼檢查過程首先判斷圖形的編碼值是否存在,其次是圖形的編碼是否正確。如果要素編碼表中不存在該編碼,說明用戶使用了錯誤的賦值方法。另外,還要檢查編碼對應圖形幾何類型與圖形的實際幾何類型是否符合,如注記編碼值不能賦到幾何圖形中,線編碼不能賦值在塊參照里。
3. 拓撲檢查
結合ArcGIS Engine二次開發組件,首先將CAD圖形轉換到臨時個人地理數據庫中,然后建立拓撲規則,最終檢測并修改存在拓撲錯誤的圖形。拓撲檢查功能包括圖形是否閉合、是否存在懸掛點、線段是否重疊或自相交等。為修改拓撲錯誤的圖形,規整工具提供了幾種拓撲編輯功能,如地塊自動閉合、線段自動連接等。
4. 屬性賦值
規劃成果數據各專題內容對屬性的要求不同,其對應的屬性字段也不相同。本文采用圖形的擴展字典(extension dictionary)進行屬性存儲,將地物對應的屬性字段名稱存儲在字典的擴展記錄(Xrecord)的Name屬性中,而屬性值則記錄在擴展記錄的Data值內,從而實現圖形數據和屬性信息的無縫集成。相對于以往直接存儲屬性信息在圖形實體的XDATA方法,本方法既能滿足屬性存儲的要求,又大大提高了其可擴展和易讀性。具體的屬性存儲結構如圖3所示。

圖3 規劃成果數據屬性存儲的結構
5. 數據標準化
由于各個單位的工作人員都可能編輯過未經審核的規劃數據,導致CAD圖紙上存在很多不滿足規劃繪圖要求的錯誤和疏漏,如圖層的名稱、顏色、線型、線寬、符號塊等不符合繪圖規范。數據標準化就是利用要素編碼值重新繪制圖形的過程,既然要素編碼是唯一的,其對應的CAD圖層和圖形特性也應是唯一的,因此筆者利用編碼值獲取圖形對應的特性,重新繪制圖形數據,使CAD規劃數據得到規范化處理。數據標準化包括圖層重命名、分層設色、線型更改、符號塊更改等流程。所有操作程序均可自動完成。
四、規劃成果數據轉換及其關鍵技術
數據規整后,將進行CAD數據向GIS數據的轉換。本文在研究二者數據格式、圖形幾何特性及二次開發技術的基礎上,結合AutoCAD.NET API組件和ArcGIS Engine組件實現GIS數據的創建和入庫。在格式轉換過程中,由于CAD實體圖形種類繁多,應針對常見的各類實體的特性構建正確的轉換算法,避免出現幾何或屬性信息的丟失,以便最有效地實現數據格式的無損轉換。其流程如圖4所示。

圖4 CAD數據轉GIS數據流程
1. 創建個人地理數據庫
首先創建一個用于存儲轉換后數據的個人地理數據庫,按規劃成果數據的類型創建相應的要素集(IFeatureDataSet),以及其包含的所有點(Point)、線(Polyline)、面(Polygon)和注記(Annotation)圖層,并依據入庫標準添加相應的圖層屬性字段。
2. 圖形轉換
圖形轉換是轉換流程中最容易產生信息丟失的一個環節,其關鍵是坐標信息的提取與重新組合,由于CAD實體(Entity)形式多樣,其坐標提取較為復雜。常見的幾類CAD實體圖形包括點(DBPoint)、塊參照(BlockReference)、直線(Line)、圓(Circle)、弧線(Arc)、樣條曲線(Spline)、多段線(Polyline)、二維多段線(Polyline2d)和文字(DBText)。針對這些實體圖形,需要讀取其相關的特性信息,以提取或換算坐標。
1) 對于點和塊參照實體,提取其位置(Position)的X和Y坐標即可,使用ArcGIS Engine接口IPoint記錄坐標信息。
2) 對于直線實體,提取其起點(StartPoint)和終點(EndPoint)的位置,使用ArcGIS Engine接口IPolyline記錄兩對坐標。
3) 對于圓形實體,在獲取其圓心(Center)位置和半徑長度后,使用ArcGIS Engine接口ICircularArc構建幾何圓,并最終封裝成IPolyline或IPolygon類型;而對于弧線實體,一般為圓的一部分,還需獲取其對應的圓心角(TotalAngle)、自身的起點和終點位置,并使用相同的ArcGIS Engine接口進行轉換。
4) 對于樣條曲線實體,由幾何知識可知,獲取其起點、終點以及控制點數量,運用樣條曲線的生成公式,即可得到擬合的坐標串,最后使用ArcGIS Engine接口IPolyline封裝坐標串。
5) 對于多段線實體,一般由直線(Line)和弧線(Arc)分段構成,應根據其分段類型(SegmentType)逐段獲取坐標信息,如為直線,使用方法2)的坐標提取方法;如為弧線,則使用方法3),最后封裝成IPolyline或IPolygon類型。
6) 對于二維多段線實體,其線段類型(Poly2dType)包括SimplePoly、CubicSplinePoly、QuadSplinePoly、FitCurvePoly 4種,根據線段類型,坐標提取時只讀取相應節點類型(VertexType)的坐標值,最后封裝成IPolyline或IPolygon類型。
7) 對于文字實體,本文為了實現數據的無損轉換以及保證數據的可讀性,將其轉換成注記類型。轉換過程中除了讀取文字的位置信息外,還需額外獲得其旋轉角度和字體高度。使用ITextElement和IFDOAttributeConversion等接口完成注記的生成。
3. 屬性轉換
圖形的屬性信息存儲在實體擴展字典的擴展記錄中,轉換時先讀取這部分的屬性信息,最后存儲到對應圖層的相應屬性字段(IField)中。
4. 要素創建與入庫
遍歷CAD數據的所有圖形實體,根據規整時賦予的編碼值判斷出實體需轉換成的幾何類型及所屬的GIS圖層,依照步驟2和步驟3得到的幾何信息和屬性信息創建GIS要素(IFeature),并插入到所屬GIS圖層中。直至所有實體轉換完成,轉換過程方可結束。
五、應用實例
利用設計好的規劃成果數據GIS建庫標準、編碼規則、規整工具及轉換程序,可解決規劃數據GIS建庫的難題。為驗證該技術的有效性和實用性,以佛山市規劃成果數據的入庫為試驗案例,圖5(a)是原始的CAD規劃成果數據,圖5(b)是轉換并入庫的規劃成果數據在ArcMap平臺上的顯示效果。通過比較可以發現,原始CAD規劃成果數據與GIS中的圖形要素保持良好的一致,證明了本技術方案的
可行性。

圖5 實例轉換對比圖
參考文獻:
[1]盧新海.多源城市規劃數據的融合與集成方法[J].測繪與空間地理信息,2005,28(4):47-49.
[2]陳明輝,歐陽南江,高益忠.淺談規劃成果數據建庫的方法及實現[J].城市勘測,2006(1) :14-17.
[3]王警.控規編制中空間數據與屬性數據的一體化研究[D].上海:同濟大學,2007.
[4]李勇平.DWG到SHP數據的一種實用轉換方法[J].國土資源信息化,2010(3):29-32.
[5]張雪松,張友安,鄧敏.AutoCAD環境中組織GIS數據的方法[J].測繪通報,2004(11):45-48.
[6]王波,張亮,孫霞.CAD向GIS數據的轉換入庫[J].地理空間信息,2011,9(3):24-26.
[7]張葉,孫毅中,陳年松.CAD城市基礎數據到GIS轉換的有關問題探討[J].測繪與空間地理信息,2007,30(1):94-97.
[8]袁源琳,張新長,黃健鋒,等.AutoCAD地形圖數據規整入庫的研究與應用[J].測繪通報,2013 (5): 84-88.
[9]文學東,鐘文軍,祝方雄,等.基于 Geodatabase 的 CAD 到 ARCGIS 數據入庫研究[J]. 測繪科學,2006,31(6):100-102.
[10]申勝利,李華.基于ArcEngine的ArcGIS與AutoCAD數據轉換研究[J].測繪通報,2007(2):41-43.
[11]劉世偉.基于GIS平臺的城市規劃管理數據的組織研究[D].上海:同濟大學,2008.
引文格式: 楊娜娜,張新長,黃健鋒. CAD規劃成果數據GIS建庫的技術與研究[J].測繪通報,2015(6):44-48.DOI:10.13474/j.cnki.11-2246.2015.0175
作者簡介:楊娜娜(1989—),女,碩士生,主要研究方向為城市GIS與空間信息服務。E-mail:luckyangna@163.com
基金項目:國家自然科學基金重點項目(41431178);高等學校博士點專項科研基金(20120171110030)
收稿日期:2014-06-21
中圖分類號:P208
文獻標識碼:B
文章編號:0494-0911(2015)06-0044-05