徐 志 揚
?
ViewGIS矢量圖關鍵字轉(zhuǎn)換方法探討
徐 志 揚
(國家林業(yè)局華東林業(yè)調(diào)查規(guī)劃設計院 浙江金華 321001)
對ViewGIS軟件矢量圖關鍵字前后期組成進行比較,分析了關鍵字代碼轉(zhuǎn)換方法,基于圖層數(shù)據(jù)庫與系統(tǒng)數(shù)據(jù)庫編寫簡易實用的數(shù)據(jù)庫處理程序?qū)⒔?jīng)營代碼編碼的關鍵字轉(zhuǎn)換為行政代碼編碼的關鍵字,為森林資源規(guī)劃設計調(diào)查數(shù)字化成果提供基礎材料。
ViewGIS;關鍵字;經(jīng)營代碼編碼;行政代碼編碼;圖層數(shù)據(jù)庫;系統(tǒng)數(shù)據(jù)庫
森林資源管理信息系統(tǒng)是數(shù)字林業(yè)建設的重要內(nèi)容。在過去的十年里ViewGIS是一些省市縣建立森林資源管理信息系統(tǒng)的基礎地理信息平臺,隨著GIS產(chǎn)業(yè)的發(fā)展以及數(shù)字林業(yè)建設的推進,很多森林資源管理信息系統(tǒng)基礎平臺正逐漸地從ViewGIS向其他地理信息軟件過渡,而將只有ViewGIS軟件識別打開的LAY圖層文件轉(zhuǎn)換為通用的SHP矢量數(shù)據(jù)或轉(zhuǎn)入地理數(shù)據(jù)庫,并完成由原建檔鄉(xiāng)村單位經(jīng)營代碼等組成的小班復合編碼(即關鍵字)向由鄉(xiāng)村單位行政代碼等組成的小班復合編碼轉(zhuǎn)換,這些都是森林資源規(guī)劃設計調(diào)查數(shù)字化成果建設的基礎性工作,是完成從ViewGIS平臺向其它地理信息平臺過渡的重要環(huán)節(jié)。
以福建省為例,大部分縣市區(qū)在2003年就已經(jīng)完成了應用ViewGIS對1997年森林資源規(guī)劃設計調(diào)查成果的建檔與矢量化工作,據(jù)此建立了基于ViewGIS平臺的森林資源管理信息系統(tǒng),并將該成果應用到實際林業(yè)生產(chǎn)中。圖斑關鍵字用復合編碼表示,由鄉(xiāng)鎮(zhèn)經(jīng)營代碼、村經(jīng)營代碼、林班號、大班號、小班號組成復合編碼,如“010200003310”表示鄉(xiāng)鎮(zhèn)經(jīng)營代碼為“01”、村經(jīng)營代碼為“02”、林班號為“000”、大班號為“03”的31小班。最近一期的森林資源規(guī)劃設計調(diào)查采用續(xù)檔調(diào)查的方法展開,續(xù)檔調(diào)查要求充分利用建檔成果。采用其它軟件如ArcGIS對調(diào)查單位區(qū)劃小班全部重新矢量化可以避免由于ViewGIS軟件自身原因造成的圖面些許斑點,但顯得有些費時費力,而通過修改原建檔矢量圖可以避免重復性矢量化,且符合技術規(guī)定要求,但建檔矢量圖關鍵字由經(jīng)營代碼編碼即鄉(xiāng)鎮(zhèn)經(jīng)營代碼、村經(jīng)營代碼、林班號、大班號與小班號組成,而最新矢量圖關鍵字要求為行政代碼編碼即行政鄉(xiāng)鎮(zhèn)代碼、行政村代碼、林班號、大班號與小班號組成,如某縣關鍵字編碼為“010200003310”的圖斑,如果鄉(xiāng)村經(jīng)營代碼“0102”對應的鄉(xiāng)村行政代碼為“201202”,那么新的復合編碼應該為“20120200003310”,因此,完成由經(jīng)營代碼組成的小班復合編碼向行政代碼組成的小班復合編碼轉(zhuǎn)換是急需解決的問題。
修改ViewGIS的LAY圖層文件關鍵字方法多樣,最簡單直接的方法就是在ViewGIS下打開圖層文件逐個修改關鍵字,當需要修改的關鍵字較少時這種辦法比較方便,但當需要修改的關鍵字較多時這種方法顯然不是明智之舉。而在ViewGIS下建立圖層數(shù)據(jù)庫,將逐個修改圖面斑塊關鍵字轉(zhuǎn)變?yōu)橹苯硬僮鲌D層數(shù)據(jù)庫則可以大大簡化工作。
當將由經(jīng)營代碼編碼組成的關鍵字向由行政代碼編碼組成的關鍵字轉(zhuǎn)換涉及到的鄉(xiāng)村單位較少時,即使需要轉(zhuǎn)換單位代碼的關鍵字眾多,用SQL命令直接操作圖層數(shù)據(jù)庫也不失為一個快捷簡單的方法,但是當需要完成關鍵字代碼轉(zhuǎn)換涉及到的鄉(xiāng)村單位較多時,使用SQL命令將逐個的經(jīng)營單位代碼編碼轉(zhuǎn)換為行政單位代碼編碼顯得既費時又費力,因此通過編制簡單實用的數(shù)據(jù)庫程序操作圖層數(shù)據(jù)庫,完成圖層文件關鍵字代碼轉(zhuǎn)換,顯得很有必要。
首先分析ViewGIS圖層數(shù)據(jù)庫以及系統(tǒng)數(shù)據(jù)庫ZYDBSystem各表結構與內(nèi)容,系統(tǒng)數(shù)據(jù)庫內(nèi)存儲著各區(qū)縣所有鄉(xiāng)村單位經(jīng)營權屬代碼與行政范圍代碼。
先看圖層數(shù)據(jù)庫,在ViewGIS下由圖層文件生成圖層數(shù)據(jù)庫會生成關鍵字、原關鍵字、特征值等字段,其中字段關鍵字保持著矢量圖與圖層數(shù)據(jù)庫一一對應,操作圖層數(shù)據(jù)庫時必須保持該對應關系不變,而字段原關鍵字保存了生成圖層數(shù)據(jù)庫之前的圖形關鍵字信息,關鍵字代碼轉(zhuǎn)換即需要充分挖掘原關鍵字信息。在圖層數(shù)據(jù)庫中增加字段“鄉(xiāng)村碼”、“林_小班碼”、“新鄉(xiāng)村碼”、“MainIndex”,其中字段“鄉(xiāng)村碼”存儲原關鍵字中前4位鄉(xiāng)村單位經(jīng)營權屬代碼,“林_小班碼”存儲原關鍵字中后面8位林班號、大班號、小班號,“新鄉(xiāng)村碼”存儲轉(zhuǎn)換后的鄉(xiāng)村單位行政范圍代碼,共6位,“MainIndex”存儲經(jīng)過重新組合的鄉(xiāng)村行政代碼、林班號、大班號、小班號復合編碼。
而在系統(tǒng)數(shù)據(jù)庫ZYDBSystem諸表中,表SYS_DISTRICT存儲了單位名稱、行政代碼、原經(jīng)營代碼等,其結構如下圖一所示。其中,字段DISTRICT_NAME存儲了單位名稱,DISTRICT_CODE存儲了對應該單位的行政編碼,TN_CODE存儲了對應該單位的原建檔經(jīng)營編碼,系統(tǒng)數(shù)據(jù)庫ZYDBSystem的表SYS_DISTRICT是完成關鍵字代碼轉(zhuǎn)換的必需要件。
圖一系統(tǒng)數(shù)據(jù)庫ZYDBSystem
表SYS_DISTRICT結構
圖二 程序運行界面
在Visual Basic 6.0編程環(huán)境下引用ADO對象編寫簡易實用的數(shù)據(jù)庫應用程序可輕松生成由行政代碼復合編碼的關鍵字,程序運行界面如上圖二所示,其中編輯框中提供了對所在縣市區(qū)原建檔代碼(如“HB”、“HA”等)的填寫。
程序?qū)崿F(xiàn)部分代碼如下:
Private Sub repalce_Click()
......
'讀取鄉(xiāng)村經(jīng)營代碼存儲到動態(tài)數(shù)組中
RsDbf.Open "select DISTINCT 鄉(xiāng)村碼 from hdyxzy", mConnDbf, adOpenKeyset, adLockOptimistic
......
While Not RsDbf.EOF
oldTownVillCode(i) = Trim(RsDbf.Fields(0).Value)
i = i + 1
RsDbf.MoveNext
Wend
RsDbf.Close
......
'查詢得到各經(jīng)營鄉(xiāng)村代碼對應的行政鄉(xiāng)村代碼,并重新計算關鍵字
For i = 1 To nTownVillCount
......
RsDistrict.Open "select * from SYS_DISTRICT where " & " TN_CODE='" & oldCountyTownVill & "'", mConnMdb, adOpenKeyset, adLockOptimistic, adCmdText
......
newTownVill = Trim(Right(newCountyTownVill, 6))
......
RsDistrict.Close
......
RsDbf.Open "select * from hdyxzy where " + "鄉(xiāng)村碼='" + oldTownVill + "'", mConnDbf, adOpenKeyset, adLockOptimistic
......
RsDbf.Fields("新鄉(xiāng)村碼").Value = newTownVill
RsDbf.Fields("mainindex").Value = Trim (newTownVill) & Trim(RsDbf.Fields("林_小班碼").Value)
......
RsDbf.Close
......
Next
......
End Sub
生成存儲在MainIndex字段中的由鄉(xiāng)村行政代碼復合編碼得到的關鍵字后,在ViewGIS環(huán)境下將圖層數(shù)據(jù)庫MainIndex字段回填關鍵字,這樣就完成了從經(jīng)營代碼組成的復合編碼向行政代碼組成的復合編碼轉(zhuǎn)換。
在森林資源規(guī)劃設計調(diào)查過程中,充分利用建檔矢量圖,以檔案材料為基礎完成矢量化,有利于提高森林資源檔案管理水平,對于檔案材料的延續(xù)性有一定作用;編寫簡易實用且可推廣應用的數(shù)據(jù)庫處理程序可以輔助完成矢量化,提高工作效率。
[1] 福建省林業(yè)廳. 福建省森林資源規(guī)劃設計調(diào)查和森林經(jīng)營方案編制技術規(guī)定. 2006.5.
[2] 福建省林業(yè)廳森林資源總站. 福建省森林資源管理培訓高級班培訓大綱.2003.9.
[3] 譚浩強,陳志泊.Visual Basic程序設計.清華大學出版社.
S725.1
B
1004-7743(2010)03-0076-03
2010-05-08