王亞卿 吳官盛 徐旭平
(1國家林業(yè)局華東林業(yè)調(diào)查規(guī)劃院 浙江金華 321000;2亞太林業(yè)漳州公司 福建漳州 363300)
眾所周知,從事林業(yè)生產(chǎn)及林業(yè)資源調(diào)查的內(nèi)業(yè)都有大批量數(shù)據(jù)需要處理,最后要出統(tǒng)計報表并生成相應的資源分布圖和相關報告。隨著我國林業(yè)發(fā)展和資源調(diào)查技術規(guī)程的不斷完善,林業(yè)調(diào)查的最終成果是由一系列格式統(tǒng)一的報表、風格一致的資源分布圖和報告組成。如一類清查、二類調(diào)查都要提交一系列的統(tǒng)計表和資源分布圖。筆者是長期從事林業(yè)數(shù)據(jù)統(tǒng)計和計算機制圖的工作人員。對于統(tǒng)計報表,筆者一般通過數(shù)據(jù)庫及相關的統(tǒng)計軟件來實現(xiàn),在數(shù)據(jù)完善的情況下,統(tǒng)計報表可以自動生成。對于資源分布圖,通過相關的制圖軟件進行手工制作,有很多重復性勞動,效率較低。由于資源分布圖的風格一致,因此筆者探索一種批量成圖的技術。
自動化成圖原理是以數(shù)據(jù)庫應用、制圖標準化、程序開發(fā)技術為基礎加以綜合。一幅完整的資源分布圖包括圖形、標題、比例尺、指北針、圖例等要素,對于這一系列的要素,可以從兩個方面進行考慮,一種為存儲方式,另一種為表現(xiàn)形式。存儲方式采用數(shù)據(jù)庫存儲,便于程序調(diào)用,表現(xiàn)形式則應有統(tǒng)一的風格。能夠?qū)崿F(xiàn)要素存儲與風格分離的制圖工具,首選GIS工具。GIS工具可以通過空間數(shù)據(jù)庫存儲圖形數(shù)據(jù)及其屬性,又可以為圖形定制不同的表現(xiàn)風格。成圖過程是在統(tǒng)一的制圖模版中,通過程序控制更改數(shù)據(jù)源,填寫必要要素,最終成圖。最終結果可以直接打印也可以生成圖片文件。
自動化成圖的實現(xiàn)前提是,數(shù)據(jù)已經(jīng)經(jīng)過處理包括拓撲關系、邏輯關系的檢查,數(shù)據(jù)正確無誤。成圖包括要素數(shù)據(jù)庫設計、制圖模版設計、程序設計、運行程序出圖等幾個流程,如圖1。
圖1
3.1 數(shù)據(jù)庫設計
現(xiàn)在比較常用的數(shù)據(jù)庫有Access、Excel、foxpro、MySql、Oracle、Sqlserver等等,空間數(shù)據(jù)庫中比較常用的是 Access、Oracle、SQLSERVER.,一般用Access作后臺數(shù)據(jù)庫居多。數(shù)據(jù)庫設計是在原有的數(shù)據(jù)庫表中增加一些屬性字段,如標題、制圖人員、調(diào)查日期等等,這些數(shù)據(jù)用于成圖過程中被程序讀取,標注到圖中。如要出一批二類小班分村分布圖,圖中要有標題、面積、調(diào)查時間、調(diào)查人員、制圖人員、制圖人員等要素,那么在數(shù)據(jù)庫表中就要有相應的要素。資源表的名稱為data,這張表可設計成如下:
字段名稱說明標題作為出圖標題,更多是由程序?qū)讉€字段動態(tài)生成小班面積數(shù)值類型調(diào)查時間時間類型調(diào)查人員文本類型制圖時間時間類型制圖人員文本類型該字段的內(nèi)容輸入數(shù)字。如標題的“位置”字段位置內(nèi)容可設置為1,在制圖模版的標1的位置,在程序運行過程則被標題的內(nèi)容替換
3.2 制圖模版設計
現(xiàn)在比較常用的 GIS軟件有 ArcGIS、MapInfo、MapGIS等等。ArcGis功能齊全,較為常用。數(shù)據(jù)庫模版設計包括圖的外觀,整體布局的設計和要素風格的定義。圖的外觀和布局的設計諸如標題、圖例、指北針、比例尺的位置。要素的風格定義包括圖形中,點、線、面的顏色、線型、字體的大小等等。一般每個行業(yè)都有自己的一套標準,制圖過程的圖形要素要盡量采用標準符號。布局和風格定義完成后,基本上完成了制圖模版的設計。
3.3 制圖程序設計
現(xiàn)在比較常用的 GIS軟件都具有二次開發(fā)的功能。如ArcGIS、MapInf、MapGIS等軟件。如選用 ArcGIS作為制圖模版就可以用VBA進行二次開發(fā)。以ArcGIS為例,用VBA進行二次開發(fā)主要是調(diào)用AO提供的接口。AO是 ESRI公司 ArcGIS? 家族中應用程序ArcMap?、ArcCatalog? 和 ArcScene?的開發(fā)平臺,它是基于Microsoft? COM技術所構建的一系列COM組件集。應該澄清的是到目前為止,AO還不是一個獨立的應用產(chǎn)品, 是依附于ArcGIS DeskTop產(chǎn)品中的軟件開發(fā)包。也就是說,購買了ArcGIS Desktop的任何一個產(chǎn)品,不管是ArcView還是ArcInfo,就有了這套強大的AO組件集,利用AO提供的組件對象來進行應用開發(fā)。自動制圖程序的設計思路是在制圖模版中加載成圖的要素,并設置好出圖風格。加載的要素包括成圖的數(shù)據(jù)(事實上是一些由點、線、面組成的圖層),光柵集(用于程序在運行過程中動態(tài)的加載地形圖,并由程序?qū)Φ匦物L圖格進行動態(tài)設置)。程序設計包括與用戶交戶的界面設計、數(shù)據(jù)庫調(diào)用、制圖、出圖等功能模塊。程序設計的思路:通過從用戶界面獲取的信息,構成檢索條件,再由數(shù)據(jù)庫調(diào)用模塊去檢索空間數(shù)據(jù)庫中的相應內(nèi)容;由制圖模塊在檢索到內(nèi)容的基礎上制圖;最后由出圖模塊將成圖結果輸出或者打印。程序的實現(xiàn)過程中使用的AO接口比較多,在此只對較重要的幾個進行簡單介紹。
接 口 功 能IFeatureClass Interface 該接口主要是實現(xiàn)從數(shù)據(jù)庫中獲取制圖要素的信息。IRasterClassifyColorRa mpRenderer Interface該接口主要是用于設置地形圖的風格IRelationalOperator Interface該接口用于空間查詢時,記錄要素間的空間關系。主要是用于從成圖數(shù)據(jù)和接圖表中檢索出相關的地形圖。IDisplayTransformation Interface該接口主要實現(xiàn)成設備坐標與邏輯坐標的轉(zhuǎn)化,主要是將成圖要素平移到界面的中心位置時調(diào)用。IElement Interface 該接口用于獲取在制圖模版上的要素。IExport Interface 該接口主要用于生成各種文件類型的圖。
3.4 制圖程序運行及結果
制圖程序運行是個批量處理成圖過程,無需要人工干預。啟動程序之后,直到完成所有制圖任務,自動制圖程序會將制圖成果保存在事先定義好文件夾中,用戶可以在該文件夾中瀏覽最終的結果。
自動批量制圖技術在理論上和實際的應用中證明是可行的。筆者和同事將此理論付諸于實踐,利用ArcGIS二次開發(fā),開發(fā)出了自動批量制圖程序并很好的應用于某造林公司的林業(yè)資源管理,從某種程度上節(jié)約了人力資源。該公司的制圖模版如(圖2)。程序運行時,能自動填寫圖中的要素,并最后生成pdf文件。從圖2可以看到該圖是1∶10000的GPS測量圖。在程序運行時,可以看到如下圖3的對話框選擇圖層是用于定義數(shù)據(jù)庫,辦事處是根據(jù)公司的情況,選擇辦事處,選擇種植年份作為過濾條件。路徑是用于保存成圖結果。程序能夠根據(jù)辦事處編號自動調(diào)用數(shù)據(jù)庫中小班圖和林道,并且將其居中,并標上四至表注,然后到指定路徑調(diào)用地形圖。同時根據(jù)成圖的要求把數(shù)據(jù)庫的信息填到右側(cè)的表中,如面積、調(diào)查人員、日期、合同信息等等。程序的另一個功能是識別林班大小,調(diào)用A4或者是 A3的模版。并將最終結果生成pdf文件存到指定文件夾中。
圖2
圖3
自動批量制圖技術有其廣泛的應用領域,包括林業(yè)制圖、土地測量制圖等。筆者的程序現(xiàn)在只局限于林業(yè)生產(chǎn)領域,筆者將不斷完善該模型和擴展該程序。總之,凡是成圖要素可由數(shù)據(jù)庫中的屬性來體現(xiàn)的、成圖要素有統(tǒng)一的風格、成圖量較多的,都可采用這個模型。
[1] 祝國瑞. 地圖學. 武漢大學出版社,2004.01.
[2] 趙杰,楊麗麗,陳雷. 數(shù)據(jù)庫原理與應用. 人民郵電出版社,2002.01.
[3]《ArcGIS Desktop Help for VB6 Developer