陳正富
(江蘇易圖地理信息工程有限公司,江蘇揚州 225002)
隨著數字城市建設的進一步深入,地理數據建庫入庫的需求及數據變更維護的需求將日益頻繁,同時測繪產品要滿足國民經濟建設的常規(guī)制圖的需要。一般的生產方式是先按制圖要求完成常規(guī)的制圖數據生產,然后按GIS數據要求進行建庫入庫。這種方式存在大量的重復和交差工作,降低了生產效率,如何解決該矛盾是測繪工作者要解決的現實問題。
一般的制圖數據大部分生產是在AutoCAD二次開發(fā)的環(huán)境下,按《地形圖圖式》要求,標準分幅分工生產,具有美觀、易讀、規(guī)范的特點,重在表達;GIS數據一般是在ArcGIS等類似的GIS平臺下生產整理,GIS數據具規(guī)范、嚴謹、易管理的特點,重在分析。本文就這兩種數據的特點探索一種有效的方式來同時滿足兩種數據的要求。
由于眾多原因,目前制圖環(huán)境中使用最多的是AutoCAD平臺,通過二次開發(fā)完成各種制圖工作。為了降低技術門檻,筆者選擇了依托于AutoCAD平臺,采用Mapping Specification for DWG(MSD)的數據編碼標準,在該標準下利用相關的API進行二次開發(fā),實現了AutoCAD平臺下生產的DLG數據同時滿足制圖數據的要求和GIS數據的要求。
AutoCAD for ArcGIS API是Esri公司為了在更好地保持原有AutoCAD工作流程的同時更好地分享和使用AutoCAD文件中的地理信息內容而提供的一套開發(fā)組件。該組件提供了使用戶可以按照標準的AutoCAD文件格式去創(chuàng)建和編輯GIS要素類的接口,并為任意AutoCAD實體添加屬性,以及搭建基于CAD的GIS應用程序;同時,利用該組件進行開發(fā)可以將AutoCAD作為GIS方案編輯器,用來將CAD數據組織為可供GIS使用的要素類;此外,利用該組件進行開發(fā)無需轉換底層的GIS數據,可在AutoCAD的環(huán)境中直接調用ArcGIS Server發(fā)布的企業(yè)級數據和影像,同時也能夠在AutoCAD中訪問ArcGIS Server所發(fā)布的地圖,并可以把地圖服務的內容自動導入到AutoCAD中,它還支持ArcGIS Server的緩存地圖服務和有安全機制的地圖服務。
該組件的核心在于Esri公司最新開發(fā)的一套Mapping Specification for DWG(MSD)的數據編碼標準,MSD標準的制定是基于DWG/DXF文件格式下的完全開放的資源框架,框架定義了DWG/DXF格式數據掛接GIS的非幾何要素屬性和地理空間坐標系統的編碼方法。MSD數據編碼標準在遵循現有的CAD標準的同時,可以讓用戶像操作GIS數據一樣對CAD數據的組織和歸屬進行創(chuàng)建、操作和定義。用MSD編碼方式實現的AutoCAD文件能夠直接以GIS內容的形式用于ArcGIS Desktop及定制的AutoCAD應用程序中。
該編碼規(guī)則規(guī)定的DWG格式數據和ArcGIS格式數據的非空間要素屬性關聯的關系結構示意圖如圖1所示。從圖1中可以看出,DWG數據中塊表(Block Table)的實體擴展數據字典(Named Oblect Dictionary)和ArcGIS數據中的要素屬性(Feature Class)能夠進行有效的關聯,因此兩者間的數據能夠很好地進行互訪問。
圖1 DWG和ArcGIS數據之間圖形的屬性關聯方式
(1)數據分類標準
根據AutoCAD的特點和MSD標準,把DWG圖形數據依據其作用劃分為三大類,分別為G(純GIS數據,需要附著GIS屬性表)、X(GIS和制圖共有數據,需要附著GIS屬性表)、Z(純制圖數據,不需要附著GIS屬性表的圖形),具體見表1。
同時為了方便后期數據應用和分析,必須對每個要素分類碼進行標準化,分類碼從以下4個方面進行規(guī)范:
1)按照G、X、Z三大類進行分類;
2)按照圖形的幾何類型進行分類,主要是面、線、點、注記四大類;
3)《圖式》要素的分類碼;
4)分類碼要預留擴充空間。
表1
以上標準經過細化、規(guī)范后,即為數據生產環(huán)境的總標準,數據導入導出、數據編輯、二次開發(fā)等所有環(huán)節(jié)都要遵循這個標準。
(2)數據屬性表
利用MSD標準的Feature Classes功能直接定義各類圖形的屬性表,同時對DWG數據進行篩選,屬性表具體的字段要求要依據工程的需求進行細化,為了提高效率和標準化,一般是從現有的模板導入到本工程。
數據屬性表也可從GIS數據直接導入到Auto-CAD環(huán)境下,這樣保證了兩種數據的一致性。
(1)圖形數據處理功能
主要是完成GIS數據到制圖數據的符號化功能和編輯功能,許多Z類數據是由G類和X類數據符號化形成的,它們之間具有一定的空間約束關系,如簡易房和簡易房符號、斜坡和斜坡符號線、房屋面和房屋屬性注記等。提供符號化工具生成制圖需要的數據,同時掛接分類碼。
其他的圖形處理功能直接可以利用現有的AutoCAD編輯功能或二次開發(fā)功能來完成。
(2)屬性數據處理功能
為了在AutoCAD環(huán)境下完成對圖形屬性表的操作,需要二次開發(fā)完成對MSD標準的屬性表的處理功能,主要是屬性表的定義、查詢、賦值、拷貝、計算等功能。
由于DWG數據是按照MSD標準生產的,在ArcGIS 9.3之后的版本直接可以無損讀取該DWG數據,如圖2所示。從ArcGIS功能Export to CAD導出的DWG文件也符合MSD標準,在AutoCAD環(huán)境下直接利用編輯,不僅可以編輯圖形數據,還可以編輯GIS的屬性數據,如圖3所示。
圖2 AutoCAD下完整的GIS數據
從AutoCAD導入到AcrGIS時只需屏蔽Z類數據,把G類和X類數據導出,同時把完整的GIS屬性數據一起導出;需要制圖輸出時只需屏蔽G類數據即可。
圖3 ArcGIS下無損的AutoCAD數據
由于MSD只支持AutoCAD 2007和ArcGIS 9.3之后版本,基于方便開發(fā)和效率的考慮,在該功能實現過程選取了AutoCAD.NET API(基于C#)開發(fā)平臺。AutoCAD.NET API提供了一系列托管的外包類(Managed Wrapper Class),使開發(fā)人員可在.NET框架下,通過編程的方法直接對AutoCAD的圖形和字典(GIS屬性)進行操縱。開發(fā)完成后的界面如圖4~圖7所示。
圖4 圖形符號化工具
圖5 屬性賦值工具
圖6 屬性拷貝功能界面
圖7 屬性計算功能界面
以下代碼為連接AutoCAD的代碼,連接成功后,可以直接訪問AutoCAD圖形和擴展字典。
本文詳細介紹了基于MSD標準實現AutoCAD環(huán)境下制圖數據和GIS數據一體化生產的技術原理、功能設計實現。該方法已經應用在數個數字城市的數據加工工程中,效益明顯。在原有的Auto-CAD操作習慣上增加了圖形的GIS屬性操作,實現了圖庫一體化編輯,既滿足了制圖數據的要求,同時也生產了一套滿足GIS要求的數據。本方法所有的標準和功能全部是在AutoCAD環(huán)境下實施,對習慣于AutoCAD的測繪人上手容易,具有一定的實用價值。
[1] 秦洪現,崔惠嵐,孫劍,等.Autodesk系列產品開發(fā)培訓教程[M].北京:化學工業(yè)出版社,2007.
[2] 張超,陳丙咸,鄔倫.地理信息系統[M].北京:高等教育出版社,1995.
[3] 李云嶺,靳奉祥,季民.數字測圖與GIS建庫的關系研究[J]. 測繪通報,2004(2),31-33.