期刊VIP學術指導 符合學術規(guī)范和道德
保障品質(zhì) 保證專業(yè),沒有后顧之憂
來源:期刊VIP網(wǎng)所屬分類:軟件開發(fā)時間:瀏覽:次
摘要:本文闡述了在MapInfo 7.0、MapGIS 6.5、ArcGIS 9.2以及ArcView 3.x四個軟件中線與面要素類型轉(zhuǎn)換的實現(xiàn)方法。
關鍵詞:GIS;線要素;面要素;要素轉(zhuǎn)換
Abstract: this paper introduces the MapInfo 7.0, MapGIS 6.5, ArcGIS 9.2 and ArcView 3. X four software midline and face elements type conversion method.
Keywords: GIS; Line elements; Surface elements; Elements conversion
中圖分類號: TP311.5 文獻標識碼:A 文章編號:
0 引言
自從加拿大學者Roger F. Tomlinson首次提出了地理信息系統(tǒng)以來,地理信息系統(tǒng)如雨后春筍般迅速發(fā)展并壯大起來,與之相對應的是各種GIS軟件應運而生,國外以ESRI公司的ARC/INFO和ArcView、MapInfo公司的MapInfo等軟件為代表,而國內(nèi)此類軟件有武漢中地公司的MapGIS等。盡管各軟件的功能很強大,但在實際運用中,結合各應用領域的具體情況,每種軟件都有其各自的優(yōu)勢。下面針對不同的軟件,進一步探討線與面要素間的轉(zhuǎn)換功能。
1 線與面要素互轉(zhuǎn)的意義
在GIS軟件中,線要素和面要素數(shù)據(jù)都是分開存儲的。線要素類中不允許存放面要素數(shù)據(jù),面要素類中也不可能存放線要素數(shù)據(jù)。同時,在許多實際情況下,我們獲得的數(shù)據(jù)信息可能只是線要素,也可能僅僅為面要素;而在GIS軟件中的一些分析和操作功能,以及顯示輸出時卻需要它們互轉(zhuǎn)后的數(shù)據(jù)信息。
以境界數(shù)據(jù)為例,很多情況下,使用單位所獲取的此類信息都是以線要素的形式存儲的,這種形式的數(shù)據(jù)遠遠不能滿足實際的需要。比如,用此線要素數(shù)據(jù)制作行政區(qū)劃圖時,就需要先將線要素轉(zhuǎn)換成面要素數(shù)據(jù),再進行一些諸如顏色、比例尺等因素的調(diào)整。有時,某一大區(qū)域所擁有的數(shù)據(jù)量很大,給顯示和分析帶來了極大的不便,此時就需要根據(jù)一定的規(guī)則和實際情況將這個區(qū)域進行分割,得到一系列符合要求的小區(qū)域。很多軟件都提供了相應的功能,即用面數(shù)據(jù)去對大區(qū)域進行切割處理,此時也需要面要素數(shù)據(jù)的支持。
下面分別以MapInfo 7.0、MapGIS 6.5、ArcGIS 9.2以及ArcView 3.x等軟件為例,闡述線與面要素數(shù)據(jù)的轉(zhuǎn)換是如何在各軟件中實現(xiàn)的。
2 幾種常用GIS軟件中線與面轉(zhuǎn)換功能的具體實現(xiàn)方法
在上述的幾種軟件中,線與面要素轉(zhuǎn)換的具體實現(xiàn)方法各有優(yōu)劣。現(xiàn)以撫順市新賓縣的一個鎮(zhèn)的境界線數(shù)據(jù)為例,分述如下:
2.1 MapInfo中線與面要素的轉(zhuǎn)換
MapInfo軟件雖然空間分析功能遠遠趕不上ESRI公司的系列產(chǎn)品,但其圖形編輯功能卻有其獨特的優(yōu)勢。通常,人們對掃描的圖形進行矢量化操作都在該軟件中進行。在MapInfo中的編輯功能中,提供了兩種功能:“convert to Regions”和“convert to Polylines”,這兩個功能可以將線要素轉(zhuǎn)成面要素,也可以將面要素轉(zhuǎn)成線要素。見圖1所示。
2.2 MapGIS中的線與面要素的轉(zhuǎn)換
MapGIS軟件中數(shù)據(jù)的組織是以點、線、弧以及區(qū)域等形式完成的。為了將線要素轉(zhuǎn)換成面要素,首先應將線要素提取為弧要素,再將閉合的弧段數(shù)據(jù)提取為區(qū)域。而將面要素轉(zhuǎn)換成線要素,從邏輯上來說,則是上述步驟的逆過程。見圖2所示。
2.3 ArcGIS中線與面要素的轉(zhuǎn)換
在ArcMap中,盡管沒有具體的功能實現(xiàn)線轉(zhuǎn)面、面轉(zhuǎn)線的操作,但卻可以使用其它方法將面要素轉(zhuǎn)換成線要素。方法一:可將某個polygon要素中的數(shù)據(jù)先復制,然后再粘貼到polyline要素中。這種方法雖然可以實現(xiàn)面要素轉(zhuǎn)成線要素,但屬性表中的信息不會保存下來,也就是說,這種方法將丟失屬性信息。方法二:在高級編輯中,Topology菜單中的Construct Features功能也可以將面要素轉(zhuǎn)換成線要素。
而為了將線要素轉(zhuǎn)成面要素,則需要到ArcCatalog中實現(xiàn)這個功能。首先應將其他格式的數(shù)據(jù)轉(zhuǎn)換到Geodatabase中一個的要素數(shù)據(jù)集下;其次,鼠標指向該數(shù)據(jù)集并右擊,選擇New中的Polygon Feature Class From Lines…,出現(xiàn)Polygon Feature Class From Lines對話框;最后在該對話框中進行各種相應的設置,選擇OK后,就會在該要素數(shù)據(jù)集中產(chǎn)生一個對應的面要素類。見圖3所示。
對于線要素和面要素的轉(zhuǎn)換,ArcGIS的ArcToolbox中將會提供專門的命令實現(xiàn)這個功能,大大地提高了數(shù)據(jù)操作的速度和精度。
2.4 ArcView中線與面要素的轉(zhuǎn)換
盡管在ArcView中沒有直接的功能對線、面要素進行互轉(zhuǎn),但卻可以在scripts中使用Avenue語言實現(xiàn)這些功能,不僅可以實現(xiàn)對線、面要素的互轉(zhuǎn),而且也可以實現(xiàn)點、線、面三類要素數(shù)據(jù)的互轉(zhuǎn)。
如果僅僅是一些簡單對象類型之間的互轉(zhuǎn),則可以使用表達式實現(xiàn)三種不同數(shù)據(jù)類型的轉(zhuǎn)換,如aObject.AsMultiPoint、aObject.AsPolygon、aObject.AsPolyLine等。若轉(zhuǎn)換的數(shù)據(jù)量大且等級高,則需要在scripts文檔中使用完整的Avenue語言去實現(xiàn)它。下面是將當前面要素層轉(zhuǎn)換成線要素的一部分腳本:
theView = av.GetActiveDoc
theThemeIn = theView.GetActiveThemes.Get(0)
fnDefault = FileName.Make("$HOME").MakeTmp("shape","shp")
fnOutput = FileDialog.Put( fnDefault,"*.shp","Output Shape File" )
if (fnOutput = nil) then exit end
fnOutput.SetExtension("shp")
ftbOutput = FTab.MakeNew( fnOutput, POLYLINE )
ftbOutput.AddFields({Field.Make("ID", #FIELD_LONG, 8, 0)})
3 結論
結合以上幾種軟件,通過對線與面要素轉(zhuǎn)換功能的研究,可以看出:盡管MapInfo在線與面要素數(shù)據(jù)的轉(zhuǎn)換方法上相對簡單,但點、線和面三種類型數(shù)據(jù)可存放在同一數(shù)據(jù)層中,不利于數(shù)據(jù)的分析和管理,且線與面要素數(shù)據(jù)轉(zhuǎn)換的方法僅針對數(shù)據(jù)層中的具體要素而言,無法實現(xiàn)數(shù)據(jù)層級別上的線與面要素數(shù)據(jù)的轉(zhuǎn)換。因此,對于大量的要素層數(shù)據(jù),如果要進行線與面要素的轉(zhuǎn)換,則最好使用ESRI公司的ArcGIS 和ArcView等系列軟件。
參考文獻:
[1] 陳述彭, 魯學軍, 周成虎. 地理信息系統(tǒng)導論. 北京:科學出版社, 2002.
[2] 羅云啟, 羅毅. 數(shù)字化地理信息系統(tǒng)MapInfo應用大全. 北京:北京希望電子出版社, 2001.
[3]秦其明, 曹五豐, 陳杉. ArcView地理信息系統(tǒng)實用教程. 北京:北京大學出版社, 2000.