詹 昊,張云姣
(中水北方勘測設計研究有限責任公司航測遙感院,天津300222)
MapGIS主要的數據格式包括點、線及區(qū)數據,對應的明碼文件格式為WAT、WAL、WAP文件。
點的明碼文件內包含6種數據的信息,常用的有兩種,即子圖與注記。子圖數據和注記所包含的信息量、各項的意義都不同。因此,算法將它們分開存儲,分別定義子圖point結構體和注記annotation結構體,各項具體的描述作為結構體的屬性。同一類型的結構體實例添加到同一個ArrayList中,如將每一個point結構體實體添加到pointArrayList中,以便于數據的檢索和查詢。同理,分別定義用于存儲線、弧段及區(qū)數據的結構體和相應的ArrayL-ist,對數據進行有序的管理。
CASS中定義了 POINT、LINE、ARC、CIRCLE、PLINE、SPLINE,TEXT、SPECIAL等 8 種實體類型,對于每種實體類型建立結構體,每種實體類型的具體描述作為結構體的屬性。再根據CASS的圖層名定義ArrayList,如名稱為JMD的ArrayList,將屬于該圖層的結構體(如point、pline等)添加到該ArrayList中。
以下為對PLINE實體類型結構體的定義

要將MapGIS匹配為CASS格式,就需要源數據中包含標示地物類型的國標碼,該國標碼以屬性的形式存儲在數據庫中。因此,點、線、注記的數據轉換就需要明碼文件和DBF屬性表。明碼文件用于提取數據的圖形信息,DBF表用來提取圖元的國標碼以及高程信息。
有了圖元的國標碼還不能確定其在CASS中的表現形式,需要建立國標碼和CASS碼的聯系,即制作CASS對照表。
對照表采用文本文檔格式,內容包括4列:“CASS碼國標碼圖層名實體類型角度”。算法要根據MapGIS數據屬性庫中的國標碼先在對照表中找到對應的CASS碼、圖層名、實體類型,以及角度;然后根據實體類型結構體的定義在明碼文件中提取相應信息,再按照圖層的順序寫成*.cas文件。
1)MapGIS中點符號的角度起算位置和CASS中不盡相同,如一個點狀地物,在MapGIS中旋轉一定的角度,在CASS中并不旋轉,這就需要將該點的旋轉角全部減掉。這時要在對照表的最后一列,“角度”中進行標注,如“-all”為不旋轉,“-90”為在原角度的基礎上減掉90°。
2)若PLINE的圖層名為“DGX”,則該PLINE的“nihe”參數應為“F”,即進行樣條曲線擬合。
3)高程點、等高線需要在屬性數據庫中提取高程數據。
4)注記可以CASS碼“140009”表示,統一放在“ZJ”圖層。
轉換區(qū)文件時,簡單的區(qū),即由一個環(huán)構成的區(qū),可以通過為其賦予CASS碼,以PLINE線或其他形式寫到*.cas中進行轉換;復雜的區(qū),即由多個環(huán)構成的區(qū),*.cas中則不包含由多個環(huán)構成區(qū)的表示方法。如圖1所示,圖(a)為在CASS中以AutoCAD的繪圖命名畫的polyline線并填充;圖(b)為將其生成*.cas交換文件再讀入到CASS中的效果,可以看到只有polyline線完成導入,填充部分丟失。

圖1 部分動畫制作界面
因此,本文提出了將MapGIS區(qū)文件寫成Auto-CAD的交換文件 DXF格式的方法,將 DXF導入CASS再匹配CASS碼,能夠將數據正確、完整地導入CASS軟件。
DXF文件是由成對的整數代碼和與代碼關聯的值組成的,AutoCAD將代碼稱為組碼,代碼關聯的值稱為組值,每個組碼和組值都各占一行。
完整的DXF文件由6個段和結束標志組成,每段都是以一個其后跟隨著字符串SECTION的組碼0開始,接著是組碼2和表示段名稱的字符串(如HEADER)。每個段內容都是由元素的組碼和組值組成。其后跟著字符串ENDSEC的組碼0表示該段結束。文件結束標志用組碼0和字符串EOF。
以下為DXF對一個環(huán)狀填充的描述實例。如表1所示。

表1

續(xù)表1
本文將試驗數據進行轉換,將區(qū)數據轉換成的DXF文件以塊的形式插入由點、線轉換成的DWG中,打散,匹配CASS碼即可完成全部數據的轉換。如圖2所示。

圖2
1)本文提出的將MapGIS點、線、注記數據寫成*.cas導入 CASS,將區(qū)數據寫成 DXF導入 Auto-CAD的轉換方法,數據轉換正確、完整,算法正確。
2)本數據轉換方法中決定數據轉換質量的關鍵是CASS對照表的制作,制作過程中應綜合參考CASS安裝目錄下的work.def文件及國家地類碼標準來決定地物類型。
3)CASS對照表可在一次次的數據轉換中不斷完善。因此,后期的工作量會越來越小。況且,本方法將點、線、注記寫為*.cas文件,轉換后編輯工作量較小,只需要手工為區(qū)數據匹配CASS碼。因此,本方法對于大批量的數據轉換,能夠較大程度的縮減工作量,提高工作效率。
[1]申娜,張福利,王輝.南方CASS交換文件的結構分析和應用[J].城市勘測,2008(6):129-131.
[2]陳浩,陳宏.解讀AUTOCAD的DXF文件[J].貴州科學,2002,20(4):125-127.