邱建康
(石獅市恒信房地產評估有限公司,福建石獅 362700)
AutoCAD下矢量數據柵格化輸出的實現
邱建康?
(石獅市恒信房地產評估有限公司,福建石獅 362700)
在AutoCAD下實現了矢量數據柵格化處理,既保證了數據的安全性又有效解決了AutoCAD格式矢量數據的傳閱和共享,為大面積范圍矢量數據的共享提供了解決方案。
矢量數據;柵格數據;AutoCAD;矢量數據柵格化;信息共享
信息化社會對空間信息的需求越來越迫切,隨著經濟社會的快速發展,各行業的業務發展對空間信息的需求不斷增加,要求空間信息必須提供可靠、適用、及時的保障服務,如:房產、交通、規劃、電力、土地、水利、農業、電子商務等行業;同時社會公眾在旅游、購物、餐飲、娛樂等方面的需求同空間信息的結合亦不斷增加。然而,作為房地產部門卻因為數據量大,矢量數據不便于在互聯網上發布等諸多因素,不能為購房者提供直觀的房源交易信息查閱。同時,建設部門的圖紙數據大部分采用AutoCAD軟件存儲,涉及各種專題數據如果直接發布到互聯網上,存在數據安全的問題。那么,這種大面積的矢量數據如何將其柵格化處理[1],制作成圖片,去除坐標信息,在互聯網上發布呢。為此,筆者提出在AutoCAD下將矢量數據進行分塊輸出,組織成金字塔分塊結構,按照指定分辨率輸出圖片,在保證圖形清晰度的前提下,實現了矢量數據柵格化處理,為專題信息的共享和傳閱提供了解決方案。
矢量圖與分辨率無關,任意地放大時,電腦就會根據現有的分辨率重新計算出新的圖像,不影響它的質量和效果。柵格圖的質量取決于分辨率,一幅柵格圖像放大幾倍后,就會明顯地出現“馬賽克”的現象。但是對于公眾普通用戶來說,在不關心圖形精度問題,滿足一般性定位的使用要求前提下,柵格數據的應用不但能夠解決方便直觀的用圖需求,而且具有快速調用顯示的特點。
2.1 金字塔柵格文件組織
為了便于對數據的有效調用及減小柵格數據的細節層次深度,對數據進行分層和分塊處理[3,5]。

圖1 金字塔數據組織
例如圖1所示在對于矢量數據分別輸出0.1 m、0.2 m、0.4 m、0.8 m分辨率的柵格化數據文件,在實際應用時根據放大的比例尺層級范圍選擇相應分辨率的柵格分塊數據顯示。對不同尺度的數據以層結構的方式進行組織,分辨率遞減的數據層形成金字塔式數據結構。在數據庫中存儲生成的有限數量的層,不同應用訪問數據庫中相應分辨率的柵格分塊數據。
對于同一層分辨率的數據,按地域范圍對數據進行分塊處理,以便于對數據的動態調用、操作及可見性判斷。如果場景中包含的數據塊太多,則每幀場景描繪所需的時間會太長,顯示效果沒有流暢感;如果數據塊太少,則描繪的速度很快,而從外存加載新的數據塊所占時間顯得更長,將會有明顯的停頓感。
為此,金字塔數據分層按照四叉樹[2]進行索引,在k維數據空間中,每一節點有2k子樹。用于對空間點的表示索引。每個節點存儲了一空間點的信息及2k個子節點的指針。如二維空間的四叉樹,每個子節點對應一個矩形,用四種方位NW,NE,SW,SE表示。逐級將空間劃分到含有數據的個數低于某一值的矩形為止。
不能再分的塊構稱為樹的葉節點,有值的葉節點為黑節點,沒有值的節點為白節點。k為樹的高度,圖2中k=3。四叉樹的存儲可按常規葉節點的順序存儲,稱為常規四叉樹。按特定葉節點順序存儲的稱為線性四叉樹。

圖2 四叉樹及其分割過程
2.2 矢量轉為柵格文件輸出
在AutoCAD中將繪制好的圖形輸出柵格圖像文件有兩種方法:
方法一:Export屏幕輸出。鼠標左鍵單擊“文件”菜單中的“輸出”命令,或直接在命令區輸入“Export”命令,系統將彈出“輸出”對話框,在“保存類型”下拉列表中選擇“?.bmp”格式,單擊“保存”,用鼠標依次選中或框選要輸出的圖形后回車,被選圖形便被輸出為bmp格式的圖像文件。然而,此種方法輸出圖像時,完全以屏幕顯示為標準。圖形窗口中的圖形按屏幕顯示尺寸等大輸出,輸出結果與圖形的實際尺寸無關,不能滿足按照分辨率輸出的需要。
方法二:虛擬打印文件輸出。通過(Add a Printer)添加打印機,設置柵格圖形輸出驅動(TIFF Version (不壓縮).pc3),在打印機屬性設置中設置自定義紙張大小,即輸出柵格圖像的尺寸——長寬像素數。
該方法能夠按照制定的分辨率輸出柵格圖像,為此采用第二種方式編程實現分層分塊的柵格數據文件自定義輸出。
用VB對AutoCAD進行二次開發[4],是基于新的ActiveX自動化界面技術。AutoCAD ActiveX技術使用戶可以通過AutoCAD暴露出來的信息,用其他應用程序(如VB)通過編程從AutoCAD內部或外部來控制和操縱AutoCAD。筆者使用AutoCAD VB開發包,通過調用AutoCAD自動化對象接口,實現調用AutoCAD圖形打印功能,自定義開發柵格數據輸出功能。
3.1 程序設計
在柵格圖像輸出之前,必須要了解圖紙打印比例的定義:舉個例子來說,AuoCAD圖形實際大小為250 m×250 m,圖紙打印大小為50 cm×50 cm,則圖紙與實際的比例為1∶500,也就是說圖紙中的1個單位等于實際中的500個單位。如果圖紙尺寸大小定義為(5 000×5 000像素),且把程序中的“打印比例:XX像素=XX單位(m)”中設置為“1像素=1單位(m)”,則表示該圖紙可打印一個5 000 m×5 000 m的實際圖形;若在程序中的“打印比例:XX像素=XX單位(m)”中設置為“1像素=0.5單位(m)”,則表示該圖紙可打印一個2 500 m×2 500 m的實際圖形。因此,如此類推,如果實際圖形的大小為250 m×250 m,且圖紙尺寸大小定義為(5 000×5 000像素),那么在打印比例設置中就應該設置為1∶0.05最為適合。
本文按照四叉樹方式將圖形進行柵格化,所以可以從2、4、8、16、…2K將指定范圍的矢量數據輸出為分塊柵格數據,并且根據需要可以選擇尺度更大的步距來輸出分層的數據,如:輸出2、32、1024、…25?n分層分塊柵格數據。并通過像素計算公式設定輸出分辨率。
3.2 功能實現
在程序代碼中將VB對象與AutoCAD運行程序連接起來后,按照分塊和選擇的圖形范圍計算輸出分辨率,循環輸出柵格文件。代碼如下:

對于不同的層依次按照各層分塊的數目設置對應的行列號,輸出相應層的柵格數據文件。程序界面如圖3左圖所示。
啟動ArcMap加載某分層所有分塊的柵格數據,核查輸出結果內容如圖3中右圖所示。

圖3 AutoCAD中輸出分塊柵格圖片(左)、在ArcMap中將分塊圖片調入查看(右)
通過在AutoCAD下實現矢量數據柵格化批量處理,并且按照金字塔組織結構分層分塊輸出,提供給網絡圖形發布調用,既保證了數據的安全性又有效解決了AutoCAD格式矢量數據的傳閱和共享。不過,在數據安全性上,還需要進一步研究將矢量數據進行有效地加密處理后再輸出金字塔柵格數據,而且使得加密處理是非對稱性加密,充分保證數據安全,對此還需要進一步的研究。
[1] 龔健雅.地理信息系統基礎[M].北京:科學出版社,2001
[2] 朱紅緣,張福慶,楊崇俊等.基于四叉樹技術的全球影像數據組織管理關鍵技術研究[J].首都師范大學學報(自然科學版),2009(05):72~76,80
[3] 陳靜,龔建雅,朱欣焰等.海量影像數據的WEB發布與實現[J].測繪通報,2004(1):22~25
[4] Autodesk.AutoCAD VBA Developer's Guide.Autodesk Inc,2009
[5] Platings M,Dat A.2004.Compression of Large-Scale Terrain Data for Real-Time Visualization Using a Tiled Quad Tree [J].COMPUTER GRAPHICS,23(4):741~759
The Implementation of Converting Vector to Raster in AuotCAD
Qiu JianKang
(ShiShi HengXin Real Estate Appraisal Co.,Ltd.Quanzhou 362700,China)
This paper introduces coverting vector to raster in AutoCAD.It not only ensures the data security but also implements vector data distribution and sharing.This also provides a solution for huge vector data sharing.
Vector;Raster;AutoCAD;vector to Raster;Information Sharing
1672-8262(2010)06-120-03
P209
B
2010—04—18
邱建康(1969—),男,助理工程師,主要從事地理信息應用工程的研發工作。