王亞卿 吳官盛 徐旭平
(1國家林業局華東林業調查規劃院 浙江金華 321000;2亞太林業漳州公司 福建漳州 363300)
眾所周知,從事林業生產及林業資源調查的內業都有大批量數據需要處理,最后要出統計報表并生成相應的資源分布圖和相關報告。隨著我國林業發展和資源調查技術規程的不斷完善,林業調查的最終成果是由一系列格式統一的報表、風格一致的資源分布圖和報告組成。如一類清查、二類調查都要提交一系列的統計表和資源分布圖。筆者是長期從事林業數據統計和計算機制圖的工作人員。對于統計報表,筆者一般通過數據庫及相關的統計軟件來實現,在數據完善的情況下,統計報表可以自動生成。對于資源分布圖,通過相關的制圖軟件進行手工制作,有很多重復性勞動,效率較低。由于資源分布圖的風格一致,因此筆者探索一種批量成圖的技術。
自動化成圖原理是以數據庫應用、制圖標準化、程序開發技術為基礎加以綜合。一幅完整的資源分布圖包括圖形、標題、比例尺、指北針、圖例等要素,對于這一系列的要素,可以從兩個方面進行考慮,一種為存儲方式,另一種為表現形式。存儲方式采用數據庫存儲,便于程序調用,表現形式則應有統一的風格。能夠實現要素存儲與風格分離的制圖工具,首選GIS工具。GIS工具可以通過空間數據庫存儲圖形數據及其屬性,又可以為圖形定制不同的表現風格。成圖過程是在統一的制圖模版中,通過程序控制更改數據源,填寫必要要素,最終成圖。最終結果可以直接打印也可以生成圖片文件。
自動化成圖的實現前提是,數據已經經過處理包括拓撲關系、邏輯關系的檢查,數據正確無誤。成圖包括要素數據庫設計、制圖模版設計、程序設計、運行程序出圖等幾個流程,如圖1。

圖1
3.1 數據庫設計
現在比較常用的數據庫有Access、Excel、foxpro、MySql、Oracle、Sqlserver等等,空間數據庫中比較常用的是 Access、Oracle、SQLSERVER.,一般用Access作后臺數據庫居多。數據庫設計是在原有的數據庫表中增加一些屬性字段,如標題、制圖人員、調查日期等等,這些數據用于成圖過程中被程序讀取,標注到圖中。如要出一批二類小班分村分布圖,圖中要有標題、面積、調查時間、調查人員、制圖人員、制圖人員等要素,那么在數據庫表中就要有相應的要素。資源表的名稱為data,這張表可設計成如下:

字段名稱說明標題作為出圖標題,更多是由程序將幾個字段動態生成小班面積數值類型調查時間時間類型調查人員文本類型制圖時間時間類型制圖人員文本類型該字段的內容輸入數字。如標題的“位置”字段位置內容可設置為1,在制圖模版的標1的位置,在程序運行過程則被標題的內容替換
3.2 制圖模版設計
現在比較常用的 GIS軟件有 ArcGIS、MapInfo、MapGIS等等。ArcGis功能齊全,較為常用。數據庫模版設計包括圖的外觀,整體布局的設計和要素風格的定義。圖的外觀和布局的設計諸如標題、圖例、指北針、比例尺的位置。要素的風格定義包括圖形中,點、線、面的顏色、線型、字體的大小等等。一般每個行業都有自己的一套標準,制圖過程的圖形要素要盡量采用標準符號。布局和風格定義完成后,基本上完成了制圖模版的設計。
3.3 制圖程序設計
現在比較常用的 GIS軟件都具有二次開發的功能。如ArcGIS、MapInf、MapGIS等軟件。如選用 ArcGIS作為制圖模版就可以用VBA進行二次開發。以ArcGIS為例,用VBA進行二次開發主要是調用AO提供的接口。AO是 ESRI公司 ArcGIS? 家族中應用程序ArcMap?、ArcCatalog? 和 ArcScene?的開發平臺,它是基于Microsoft? COM技術所構建的一系列COM組件集。應該澄清的是到目前為止,AO還不是一個獨立的應用產品, 是依附于ArcGIS DeskTop產品中的軟件開發包。也就是說,購買了ArcGIS Desktop的任何一個產品,不管是ArcView還是ArcInfo,就有了這套強大的AO組件集,利用AO提供的組件對象來進行應用開發。自動制圖程序的設計思路是在制圖模版中加載成圖的要素,并設置好出圖風格。加載的要素包括成圖的數據(事實上是一些由點、線、面組成的圖層),光柵集(用于程序在運行過程中動態的加載地形圖,并由程序對地形風圖格進行動態設置)。程序設計包括與用戶交戶的界面設計、數據庫調用、制圖、出圖等功能模塊。程序設計的思路:通過從用戶界面獲取的信息,構成檢索條件,再由數據庫調用模塊去檢索空間數據庫中的相應內容;由制圖模塊在檢索到內容的基礎上制圖;最后由出圖模塊將成圖結果輸出或者打印。程序的實現過程中使用的AO接口比較多,在此只對較重要的幾個進行簡單介紹。

接 口 功 能IFeatureClass Interface 該接口主要是實現從數據庫中獲取制圖要素的信息。IRasterClassifyColorRa mpRenderer Interface該接口主要是用于設置地形圖的風格IRelationalOperator Interface該接口用于空間查詢時,記錄要素間的空間關系。主要是用于從成圖數據和接圖表中檢索出相關的地形圖。IDisplayTransformation Interface該接口主要實現成設備坐標與邏輯坐標的轉化,主要是將成圖要素平移到界面的中心位置時調用。IElement Interface 該接口用于獲取在制圖模版上的要素。IExport Interface 該接口主要用于生成各種文件類型的圖。
3.4 制圖程序運行及結果
制圖程序運行是個批量處理成圖過程,無需要人工干預。啟動程序之后,直到完成所有制圖任務,自動制圖程序會將制圖成果保存在事先定義好文件夾中,用戶可以在該文件夾中瀏覽最終的結果。
自動批量制圖技術在理論上和實際的應用中證明是可行的。筆者和同事將此理論付諸于實踐,利用ArcGIS二次開發,開發出了自動批量制圖程序并很好的應用于某造林公司的林業資源管理,從某種程度上節約了人力資源。該公司的制圖模版如(圖2)。程序運行時,能自動填寫圖中的要素,并最后生成pdf文件。從圖2可以看到該圖是1∶10000的GPS測量圖。在程序運行時,可以看到如下圖3的對話框選擇圖層是用于定義數據庫,辦事處是根據公司的情況,選擇辦事處,選擇種植年份作為過濾條件。路徑是用于保存成圖結果。程序能夠根據辦事處編號自動調用數據庫中小班圖和林道,并且將其居中,并標上四至表注,然后到指定路徑調用地形圖。同時根據成圖的要求把數據庫的信息填到右側的表中,如面積、調查人員、日期、合同信息等等。程序的另一個功能是識別林班大小,調用A4或者是 A3的模版。并將最終結果生成pdf文件存到指定文件夾中。

圖2

圖3
自動批量制圖技術有其廣泛的應用領域,包括林業制圖、土地測量制圖等。筆者的程序現在只局限于林業生產領域,筆者將不斷完善該模型和擴展該程序。總之,凡是成圖要素可由數據庫中的屬性來體現的、成圖要素有統一的風格、成圖量較多的,都可采用這個模型。
[1] 祝國瑞. 地圖學. 武漢大學出版社,2004.01.
[2] 趙杰,楊麗麗,陳雷. 數據庫原理與應用. 人民郵電出版社,2002.01.
[3]《ArcGIS Desktop Help for VB6 Developer