期刊VIP學術指導 符合學術規范和道德
保障品質 保證專業,沒有后顧之憂
摘要:本文闡述了在MapInfo 7.0、MapGIS 6.5、ArcGIS 9.2以及ArcView 3.x四個軟件中線與面要素類型轉換的實現方法。
關鍵詞:GIS;線要素;面要素;要素轉換
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首次提出了地理信息系統以來,地理信息系統如雨后春筍般迅速發展并壯大起來,與之相對應的是各種GIS軟件應運而生,國外以ESRI公司的ARC/INFO和ArcView、MapInfo公司的MapInfo等軟件為代表,而國內此類軟件有武漢中地公司的MapGIS等。盡管各軟件的功能很強大,但在實際運用中,結合各應用領域的具體情況,每種軟件都有其各自的優勢。下面針對不同的軟件,進一步探討線與面要素間的轉換功能。
1 線與面要素互轉的意義
在GIS軟件中,線要素和面要素數據都是分開存儲的。線要素類中不允許存放面要素數據,面要素類中也不可能存放線要素數據。同時,在許多實際情況下,我們獲得的數據信息可能只是線要素,也可能僅僅為面要素;而在GIS軟件中的一些分析和操作功能,以及顯示輸出時卻需要它們互轉后的數據信息。
以境界數據為例,很多情況下,使用單位所獲取的此類信息都是以線要素的形式存儲的,這種形式的數據遠遠不能滿足實際的需要。比如,用此線要素數據制作行政區劃圖時,就需要先將線要素轉換成面要素數據,再進行一些諸如顏色、比例尺等因素的調整。有時,某一大區域所擁有的數據量很大,給顯示和分析帶來了極大的不便,此時就需要根據一定的規則和實際情況將這個區域進行分割,得到一系列符合要求的小區域。很多軟件都提供了相應的功能,即用面數據去對大區域進行切割處理,此時也需要面要素數據的支持。
下面分別以MapInfo 7.0、MapGIS 6.5、ArcGIS 9.2以及ArcView 3.x等軟件為例,闡述線與面要素數據的轉換是如何在各軟件中實現的。
2 幾種常用GIS軟件中線與面轉換功能的具體實現方法
在上述的幾種軟件中,線與面要素轉換的具體實現方法各有優劣。現以撫順市新賓縣的一個鎮的境界線數據為例,分述如下:
2.1 MapInfo中線與面要素的轉換
MapInfo軟件雖然空間分析功能遠遠趕不上ESRI公司的系列產品,但其圖形編輯功能卻有其獨特的優勢。通常,人們對掃描的圖形進行矢量化操作都在該軟件中進行。在MapInfo中的編輯功能中,提供了兩種功能:“convert to Regions”和“convert to Polylines”,這兩個功能可以將線要素轉成面要素,也可以將面要素轉成線要素。見圖1所示。
2.2 MapGIS中的線與面要素的轉換
MapGIS軟件中數據的組織是以點、線、弧以及區域等形式完成的。為了將線要素轉換成面要素,首先應將線要素提取為弧要素,再將閉合的弧段數據提取為區域。而將面要素轉換成線要素,從邏輯上來說,則是上述步驟的逆過程。見圖2所示。
2.3 ArcGIS中線與面要素的轉換
在ArcMap中,盡管沒有具體的功能實現線轉面、面轉線的操作,但卻可以使用其它方法將面要素轉換成線要素。方法一:可將某個polygon要素中的數據先復制,然后再粘貼到polyline要素中。這種方法雖然可以實現面要素轉成線要素,但屬性表中的信息不會保存下來,也就是說,這種方法將丟失屬性信息。方法二:在高級編輯中,Topology菜單中的Construct Features功能也可以將面要素轉換成線要素。
而為了將線要素轉成面要素,則需要到ArcCatalog中實現這個功能。首先應將其他格式的數據轉換到Geodatabase中一個的要素數據集下;其次,鼠標指向該數據集并右擊,選擇New中的Polygon Feature Class From Lines…,出現Polygon Feature Class From Lines對話框;最后在該對話框中進行各種相應的設置,選擇OK后,就會在該要素數據集中產生一個對應的面要素類。見圖3所示。
對于線要素和面要素的轉換,ArcGIS的ArcToolbox中將會提供專門的命令實現這個功能,大大地提高了數據操作的速度和精度。
2.4 ArcView中線與面要素的轉換
盡管在ArcView中沒有直接的功能對線、面要素進行互轉,但卻可以在scripts中使用Avenue語言實現這些功能,不僅可以實現對線、面要素的互轉,而且也可以實現點、線、面三類要素數據的互轉。
如果僅僅是一些簡單對象類型之間的互轉,則可以使用表達式實現三種不同數據類型的轉換,如aObject.AsMultiPoint、aObject.AsPolygon、aObject.AsPolyLine等。若轉換的數據量大且等級高,則需要在scripts文檔中使用完整的Avenue語言去實現它。下面是將當前面要素層轉換成線要素的一部分腳本:
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 結論
結合以上幾種軟件,通過對線與面要素轉換功能的研究,可以看出:盡管MapInfo在線與面要素數據的轉換方法上相對簡單,但點、線和面三種類型數據可存放在同一數據層中,不利于數據的分析和管理,且線與面要素數據轉換的方法僅針對數據層中的具體要素而言,無法實現數據層級別上的線與面要素數據的轉換。因此,對于大量的要素層數據,如果要進行線與面要素的轉換,則最好使用ESRI公司的ArcGIS 和ArcView等系列軟件。
參考文獻:
[1] 陳述彭, 魯學軍, 周成虎. 地理信息系統導論. 北京:科學出版社, 2002.
[2] 羅云啟, 羅毅. 數字化地理信息系統MapInfo應用大全. 北京:北京希望電子出版社, 2001.
[3]秦其明, 曹五豐, 陳杉. ArcView地理信息系統實用教程. 北京:北京大學出版社, 2000.