李友明
摘要:在大比例地形圖數據的生產中,CASS軟件使用非常廣泛,CASS9.1軟件能較好的滿足國家基本比例尺地圖圖式第1 部分: 1∶ 500,1∶ 1000,1∶ 2000 地形圖圖式(GB /T 20257. 1—2007)(以下簡稱07版圖式)要求,但在顏色、字體、圖層設置上無法滿足多樣化的要求,如何解決CASS9.1軟件成圖數據滿足以07版圖式為基礎的復雜情況下的數據要求,文中詳細探討了CASS9.1軟件成圖數據靈活轉換的基本原理、思路以及實現的過程。
Abstract: In the production of large-scale scale map data, CASS software is very widely used, CASS9.1 software can meet the requirements of cartographic symbols of national fundamental scale maps, which regulated in Part 1, 1: 500, 1:1000, 1: 2000 scale maps cartographic symbols (GB / T 20257. 1-2007) (hereinafter referred to as 07 cartographic symbols), but the software can not meet the diverse requirements in the color, font, layer settings. In order to solve CASS9.1 software mapping data to meet the 07 cartographic symbols requirements, the paper puts forward the basic principle, idea and realization process of flexible conversion of CASS9.1 software mapping data in detail.
關鍵詞:CASS9.1;地形圖圖式;轉換
Key words: CASS9.1;scale map cartographic symbols;transformation
中圖分類號:P208 文獻標識碼:A 文章編號:1006-4311(2017)23-0210-03
0 引言
大比例數字化地圖的生產中,南方CASS軟件使用非常廣泛,CASS9.1軟件能較好的滿足07版圖式要求,但在顏色、字體、圖層設置上無法滿足多樣化的要求,生產單位在生產作業中,同時要滿足業主方的基于07版圖式基礎的分層分色、圖塊編碼、線型編碼等特殊要求和保證數據的正確,會遇到一系列的復雜情況。為應對這些復雜情況,我們需要一種能解決這些復雜情況的作業手段,如何解決CASS9.1軟件成圖數據滿足以07版圖式為基礎的復雜情況下的數據要求,這是我們關心的問題。
①通過分析07版圖式和CASS9.1軟件,我們發現CASS9.1軟件無法滿足07版圖式的有以下情況:
1)塊和顏色無法滿足07版圖式。2)分層無法滿足多樣化要求(比如有些業主要求門牌號等數據單獨分層)。
②其它業主要求的情況。
1)滿足業主要求塊名按照國標代碼6位數編號。2)滿足業主要求文字、線型、直線等在厚度屬性填寫國標碼6位數編號。3)數據自動檢查。
本文圍繞上述情況探討CASS9.1成圖數據滿足以上要求的數據轉換方法。
1 數據轉換的基本思路
通常遇到這種軟件無法滿足要求情況,一般思路都是修改成圖軟件配置滿足要求,這也是最便捷和省事的解決辦法,但是本文提到的特殊要求,比如塊名按照國標代碼6位數編號就無法修改軟件配置達到要求,CASS9.1軟件在修改塊名后,按區域配置符號就會出錯。針對本次提出的問題,通過分析,我們的解決思路為不改變CASS9.1軟件配置,只對成圖后的數據進行轉換處理。CASS軟件的地物代碼唯一,可以根據這一特性進行轉換處理。
1.1 轉換表制作
轉換表的制作是整個轉換工作關鍵的工序,以CASS軟件的配置文件work.def為基礎進行修改,在該表基礎上增加和刪減內容,滿足轉換工作的需要,為方便制作,將該文件導入EXCEL中進行整理。07版圖式采用青、品紅、黃、黑(CMYK)四色進行組合分色,圖式中共有9種CMYK顏色組合,如表1所示,CASS是基于AutoCAD平臺的二次開發的成圖系統,AutoCAD平臺的顏色配置方式,只有RGB可與CMYK色值一一對應,這是實現在AutoCAD平臺下與圖式CMYK色值匹配的基礎。真彩色(RGB)與圖式CMYK色值兩種色的對照按圖1錄入轉換表中,本次轉換主要增加成果圖層、國標代碼、成果圖顏色及字體樣式等相關內容。制作好的轉換表如圖1所示,制作好后在EXCEL中保存為csv的文件格式。
轉換表的制作是很關鍵的步驟,可以達到靈活的目的,比如遇到新的元素,只需統一一個編碼,將該新編碼錄入轉換表就能實現轉換,特別是在有要求DWG格式數據轉換為ARCGIS數據時,在CAD數據中要按照要求賦給元素規定的擴展屬性,可以在這個轉換表中擴充屬性字段,達到一表多用,這個問題本文不多闡述。
1.2 程序思路
①轉換的同時,進行數據初步檢查。
②讀取轉換配置表。
③遍歷圖形元素,并讀取其CASS編碼和配置表中的編碼匹配,如果匹配上,就從轉換表中取出需用的信息,根據提取的信息,修改相應元素的層色碼等。同時檢查核對從轉換表得到的要素是否和圖形要素一致,如不一致,進行錯誤處理,在圖形上增加檢查錯誤圖層并標注錯誤信息,該步檢查只進行初步檢查,對需要由本次轉換程序修改和增加的內容不予檢查,所以這部檢查工作時不完整的,只能滿足轉換工作的需要。
④保存單個圖形。
⑤實現批量轉換處理。
⑥數據詳細檢查,轉換完成后,讀取轉換配置表。遍歷圖形元素,并讀取其CASS編碼和配置表中的編碼匹配,如果匹配上,就從轉換表中取出需用的信息,根據提取的信息,詳細檢查核對從轉換表得到的要素是否和圖形要素一致,如不一致,進行錯誤處理,在圖形上增加檢查錯誤圖層并標注錯誤信息。
2 功能實現
通過思路構架,下面介紹在AUTOCAD的VBA二次開發環境中實現上述功能過程。
2.1 數據轉換模塊功能
本功能中先選擇轉換表,使用列表框控件進行批轉換操作,使用集合(Collection以CASS代碼為關鍵詞)讀取轉換表要素,然后遍歷圖形元素進行匹配,根據匹配得到的信息進行層色的轉換和其它屬性的賦值操作。同時將文字、線型、直線等在厚度屬性填寫國標碼6位數編號。在文字轉換中,需要先根據轉換表中的文字樣式和字體先建立對應的文字樣式,再進行文字樣式的轉換設置。
數據轉換的界面如圖2所示。
2.2 塊名按照國標代碼6位數編號
利用CASS軟件的圖形屬性轉換實現,先將CASS塊按照對應的6位數國標代碼重新命名,命名好后置于CAD支持路徑下,命名的同時將塊的替換文件按下列格式做好,然后運行圖形屬性轉換功能就能全部替換圖形中的對應塊。
塊替換的文本文件格式
2.3 數據檢查模塊功能
本功能中先選擇轉換表,同時設置成圖比例尺選項,成圖比例尺支持1:500、1:1000、1:2000三種比例尺,轉換表的文字尺寸根據1:1000比例設置,程序中根據選擇的比例尺計算比例系數,再進行比對確定正確與否,文字的檢查中,可能遇到一種代碼允許多個文字大小的情況,這時就在轉換表的文字尺寸列將所允許的大小數據全部列出,程序中用InStr函數進行識別判斷。為加快程序運行速度,先將轉換的數據讀入集合中,以CASS代碼為關鍵詞,便于快速查找,讀入集合(Collection)前,先要保證關鍵詞列無重復值,這在EXCEL中很容易實現。該步檢查將對應編碼元素的所有信息全部核對一遍,不符合要求的在圖形上進行標示,同時將線段和文字的厚度值進行檢查,塊名也按照要求進行檢查,基本覆蓋了本文要求完成的數據項的檢查。
數據檢查模塊功能界面如圖3。
檢查后圖形界面效果如圖4所示。修改時可以根據提示方便地進行修改。
3 結論
本文提出的數據轉換方法,基礎是利用CASS元素編碼唯一性進行的,能比較靈活地進行成果的轉換工作,能解決修改CASS配置文件無法達到要求的數據轉換,同時按照本文的優化算法和VBA的運算速度,程序在轉換時很快就能轉換完一副標準分幅的1:500或1:1000地形圖,完全解決本文所述的情況,已成功應用于瀘州測區,廈門測區,其檢查功能發揮了巨大的作用,將潛在的錯誤基本都能查出來,提高了生產效率和產品質量。
在理論上,本文探討的方法的不足之處在于轉換表的制作是個很繁瑣的工作,需要逐條逐條核對相關信息,但在轉換表制作好后,帶來的好處是非常巨大的,特別適合大型項目的數據轉換。
參考文獻:
[1]國家技術監督局.GB/T 7929—1995,1:500、1:1000、1:2000地形圖圖式[S].北京:中國標準出版社,1995.
[2]王友昆,鐘高飛,張君華.CASS9.1地形圖CMYK顏色的實現[J].測繪通報,2012(06).
[3]張照飛.南方Cass9.1圖層及顏色與相應規范統一的研究[J].新疆有色金屬,2012(03).