李浩,郭夢熾
(1.哈爾濱市勘察測繪研究院,黑龍江哈爾濱 150010; 2.哈爾濱數字城市科技有限公司,黑龍江哈爾濱 150010)
柵格地形圖批量輸出程序的設計與實現
李浩1,2?,郭夢熾1,2
(1.哈爾濱市勘察測繪研究院,黑龍江哈爾濱 150010; 2.哈爾濱數字城市科技有限公司,黑龍江哈爾濱 150010)
將DWG矢量地形圖轉為柵格地形圖,能夠有效解決測繪數據共享和分發中的數據安全問題。本文分析了在矢量地形圖轉為柵格地形圖過程中需要解決的問題,給出了解決方法。基于AutoCAD的ActiveX對象庫,在內嵌的VBA開發環境下,開發了柵格地形圖批量輸出程序,解決了海量DWG矢量地形圖到柵格地形圖的快速轉換問題。
柵格地形圖;批量輸出;AutoCAD;VBA
城市大比例尺地形圖是城市地形的真實反應,在城市規劃、建設領域中起著舉足輕重的作用。目前,我國城市大比例尺地形圖大多以AutoCAD的DWG格式的形式存在。這種矢量數據的存儲模式,由于具有精確的空間位置信息,不利于測繪數據的安全共享與分發。將這種矢量數據模式的地形圖轉為柵格數據模式的地形圖,能夠在真實再現城市現勢地形特征的基礎上,避免空間地理坐標信息的暴露,對測繪數據的安全共享與分發具有重要意義。本文基于AutoCAD平臺,開發了柵格地形圖批量輸出程序,解決了海量DWG地形圖到柵格地形圖的快速轉換問題。
DWG格式的地形圖文件,往往一個文件就是一個圖幅。在一個圖幅內,包含了水系、居民地、道路、綠地等全要素數字線劃圖基本地形要素,各種要素一般按專題進行分類,每一類要素歸并到一個圖層中,并賦予規定的線型、線寬、顏色等符號特征。同時還具有標注、備注、圖廓等整飾元素。對于柵格地形圖,根據成圖以及拼圖需要,在輸出柵格地圖的時候,需要將某些地圖要素剔除,同時根據柵格地圖的特點,還需要調整矢量線劃圖的線型、顏色、標注字體等。面對大數據量的轉換工作,如果由人工完成,需要投入大量人力。因此,設計和實現批量轉換程序,具有重要意義。
根據某項目需求,需要將市域范圍內所有DWG格式的矢量地形圖(1∶1 000比例尺,1∶2 000比例尺)統一轉為比例尺為1∶2 000的柵格地圖(TIF格式)。1∶1 000、1∶2 000地形圖分幅如圖1所示。其中,1∶1 000地形圖分幅按照實地0.5 km×0.4 km大小的單元格為一個幅面劃分,1∶2 000地形圖分幅按照實地1 km×1 km大小的單元格為一個幅面劃分,10幅1∶1 000地形圖正好可以劃分成2幅1∶2 000地形圖。為了保證柵格地圖的可視性,柵格地圖的地面分辨率設定為0.2 m。這樣,1∶2 000矢量地形圖對應的1∶2 000柵格地圖的像素大小為5 000×5 000像素(1 km÷0.2 m/pixel=5 000 pixel),1∶1 000矢量地形圖對應的1∶1 000柵格地圖的像素大小為2 500× 2 000像素(0.5 km÷0.2 m/pixel=2 500 pixel,0.4 km ÷0.2 m/pixel=2 500 pixel)。

圖1 1∶1 000、1∶2 000地形圖分幅
根據以上計算,每1幅1∶2 000矢量地形圖輸出為一張5 000×5 000像素的柵格圖片,每10幅1∶1 000矢量地形圖正好可以輸出為兩張5 000×5 000像素的柵格圖片(如圖1所示),最后將所有圖片按照空間位置拼接為一整張柵格地圖。批量輸出程序基于AutoCAD平臺,采用內置VBA開發環境開發。
3.1 配置打印參數
由于AutoCAD默認的打印機配置中沒有TIF柵格文件的打印配置選項,因此我們首先需要配置這一選項,并且設置輸出TIF柵格文件的分辨率為5 000× 5 000像素,配置步驟如下所述:打開“Autodesk打印管理器”,在“Autodesk打印機管理器”中雙擊“添加打印機”向導,選擇下一步。在“添加打印機—開始”對話框中選擇“我的電腦”。選擇“下一步”,進入“添加打印機—打印機型號”對話框,在“生產商”列表中選擇“光柵文件格式”選項,在“型號”列表中選擇“TIFF Version 6(不壓縮)”選項,一直選擇“下一步”。在“添加打印機—完成”對話框中,點擊“編輯打印機配置”,進入“打印機配置編輯器”對話框中。在“設備和文檔設置”選項卡中選擇“自定義圖紙尺寸”,設置輸出柵格文件的長度為5 000,寬度為5 000,單位為像素。
3.2 導入圖形文件
ObjectDBX是AutoCAD為宿主程序(ACAD)、圖形文件(DWG)、用戶應用程序(ARX)和用戶對象文件(DBX)之間的接口,利用ObjectDBX類型庫,可以在不打開CAD文件本身的前提下,對文件進行訪問、讀入、寫出等操作,是實現柵格地形圖批量輸出的關鍵。為了完整的導入外部圖形文件,需要將外部圖形文件的圖層、圖層屬性、實體對象、線型、文字樣式等對象全部導入到當前圖形文檔中。使用ObjectDBX對象的CopyObjects方法即可完成外部圖形文件各種對象的導入。下面的程序示例了從外部圖形文件中導入圖層strLayer中的全部圖元實體到當前模型空間。

3.3 制圖綜合
1∶1 000地形圖輸出為1∶2 000地形圖時,如不對圖元進行制圖綜合的操作,將導致1∶2 000地形圖圖面負載過大,造成讀圖判圖困難。為了保證輸出成果清晰可讀,又不影響數據的準確表達,定義如下制圖綜合規則:
(1)高程點、等高線抽稀。考慮到哈爾濱市地形比較平坦,通過程序對高程點、等高線統一進行抽稀,在不影響地形表達的前提下,可以很大程度地減少地圖負載。
高程點的抽稀方法為:將圖幅范圍內的所有高程點存入選擇集,刪除原范圍內的高程點,將選擇集內的高程點展繪到幅面上。在展繪時,以將要展繪的高程點為中心,以給定的高程點間距為直徑,判斷該范圍內是否有高程點,如果有,則不展繪此點,如果沒有,則展繪此點。
等高線抽稀采用判斷高程的方式進行。首先根據原圖等高距計算新圖的等高距,計算公式為:
新基本等高距=原等高距×編繪新圖比例尺/原圖比例尺
然后構造圖幅范圍內的等高線選擇集,在選擇集內,將高程是新基本等高距整數倍的等高線保留,不是整數倍的等高線進行刪除。
(2)刪除次要地物。刪除在1∶2 000地形圖中不需要表達的地物,如控制點、地下管線、管井、路燈、樓層注記等。具體操作為:通過程序以次要地物所在的圖層為過濾條件,構造次要地物圖元對象的選擇集,遍歷選擇集中的每一個對象,通過對象的Delete方法將其刪除。
(3)符號替換。對于復雜的點狀符號,替換為簡單的點狀符號。對于密度大的填充符號,替換為密度小的填充符號。由于所有的符號都以圖塊的形式存在,每一類符號對應唯一的一個圖塊名,因此,可以事先構造替換符號的塊文件,然后建立原始符號塊名稱到替換符號塊名稱的映射表,通過程序遍歷圖幅范圍內的塊,對照映射表,能夠快速實現符號替換。
3.4 地圖幅面整飾
當外部圖形文件全部導入到當前圖形文檔中后,需要根據事先制定的制圖原則對當前地圖幅面進行整飾,整飾的內容包括:關閉某些不需要輸出的圖層對象,如骨架線圖層;去除原地形圖的圖廓;調整某些圖元的線型等,以滿足柵格地圖的輸出標準。
3.5 打印輸出
最后,根據3.1節設置的打印參數,對當前地圖文檔的內容進行輸出。在AutoCAD的ActiveX模型中,Plot對象的PlotToDevice方法使用指定的打印機打印指定的布局,PlotToFile方法則使用虛擬打印機將指定的布局打印到文件中。在本文中,使用PlotToFile方法,將當前文檔的指定區域輸出到TIF柵格文件中。下面的程序示例了如何進行指定區域輸出到TIF柵格文件中。

圖2為該程序的運行界面,圖3為加載的10幅1∶1 000DWG格式的地形圖,圖4、圖5為圖3所示的10幅DWG格式的地形圖輸出的2幅1∶2 000柵格地形圖。

圖2 程序運行界面

圖3 1∶1 000DWG地形圖

圖4 1∶2 000柵格地形圖I

圖5 1∶2 000柵格地形圖II
基于AutoCAD的ActiveX對象庫,在內嵌的VBA開發環境下,開發了柵格地形圖批量輸出程序。運用此程序,綜合1∶1 000、1∶2 000結合表,自動完成了哈爾濱市域范圍內1∶2 000柵格地形圖的輸出任務。輸出的柵格數據滿足規范設計要求,數據成果已應用于某電子地圖應用系統中,發揮了重要的經濟效益和社會效益。
[1] 邵俊昌,李旭東.AutoCAD ObjectARX 2000開發技術指南[M].北京:電子工業出版社,2000
[2] 鄭立楷,盧擇臨,王成煌.AutoCAD VBA二次開發教程[M].北京:清華大學出版社,2006
[3] 祝國瑞.地圖學[M].武漢:武漢大學出版社,2004
[4] 李乃良.基于AutoCAD的地形圖縮編中高程點自動抽稀方法的探討[J].城市勘測,2007(3);81~82
[5] 黃玉君,丁桂榮,鄧紅艷等.MicroStation環境下等高線綜合工具箱的開發[J].海洋測繪,2003,23(3);36~37
Design and Implementation of Raster Topographic Map Batch Exporting Program
Li Hao1,2,Guo MengChi1,2
(1.Haerbin Exploration and Surveying Institute,Haerbin 150010,China;2.Haerbin Digital City Science&Technology Co.,Ltd.Haerbin 150010,China)
The transformation from vector topographic map to raster topographic map is a effectual method for data security in survey data sharing and distributing.This paper analyses the problems of transformation from vector topographic map to raster topographic map,provides the solution,develops the raster topographic map batch exporting program under the built-in VBA development environment,based on ActiveX in AutoCAD,which works out the problem of quick vast switching from vector topographic map to raster topographic map.
Raster Topographic Map;Batch Exporting;AutoCAD;VBA
1672-8262(2010)06-125-04
P209
B
2010—03—30
李浩(1983—),男,工程師,主要從事地理信息系統相關技術工作。