ArcMap是一個功能豐富的復雜系統,但凡對它有些認知的會同意這個觀點。
它的豐富與復雜體現在一個objective有多種implementation,還體現在多種implementation有類似的result。分析這些同與不同,可以幫助我們更好地認識與綜合運用這個系統。
這里,博主單拎出“面轉線”這個objective小議一下。
Preparation
1、演示使用軟件版本為ArcGIS Desktop 10.1,其他版本可能存在結果不一致的情況(這也是“復雜”的一種表現),演示中會使用ArcToolbox組件。
2、搞一個面要素類,最好存在如下圖所示的孔洞、島嶼、重疊面等要素,保證我們測試數據足夠的復雜。
Implementation 1—Feature To Line
第一種實現方式我們選擇“要素轉線”,它在ArcToolbox的“數據管理”工具箱——“要素”工具集中,具體的工具功能可以閱讀其說明。
輸入的要素類是我們准備的面要素類,輸出結果博主這里是"p2_FeatureToLine"面要素類,使該要素類圖層進入編輯狀態,我們看一下結果的特征:
1、線是根據面相接或者面重疊斷開的
2、所有的交界部分的公共邊(下圖高亮部分)生成了2次
需要特別說明的是最下邊的圓形是一個島嶼與外圍面的公共邊。
Implementation 2—Polygon To Line
第二種實現方式使用“面轉線”工具,它的路徑與“要素轉線”工具路徑一致。
輸入的要素類仍然是我們准備的面要素類,輸出結果博主這里是"p2_PolygonToLine"面要素類,使該要素類圖層進入編輯狀態,我們看一下結果的特征:
1、線是根據面相接或者面重疊斷開的(同上一種公具,不再附圖)
2、公共邊界只生成了一條線
3、重疊面的邊界生成了2次,重疊面覆蓋的公共邊生成了4次
Implementation 3—Polygon Copy To Polyline
這是一種簡單生硬的操作方式。
新建一個線要素類(注意空間參考與面要素類一致),將要轉線的面要素類在編輯狀態選中所有要素圖斑,復制→粘貼到這個新建的要素類,博主這里該要素類的名字是“Polygon2Polyline”。
同樣,我們看一下它的特征(請忽略圖中的2,4字樣注記,截圖疏忽,忘記刪掉):
1、所有的面要素均轉為了獨立的線要素,不受要素圖斑空間關系的影響
2、多部件面要素會轉換為多部件線要素
需要補充一下的是不知道如何驗證是否多部件的翻翻博主的這一篇博文→解析ArcGis的字段計算器(二)——有玄機的要素Geometry屬性,在屬性表就能查出孔洞、多部件
Implementation 4—Intersect
這個工具有一個快捷打開入口,在工具欄——“地理處理”下拉。
可以將輸出類型設置為“LIne”,從而輸出面公共邊為線要素類。
接下來,編輯一下,看看特征:
1、結果不受重疊面的影響,只是將公共邊生成線要素(如下圖,紅色)
2、所有公共邊生成2次線要素
Summary
1、如果需要獲取面要素根據鄰接關系轉換成多線,使用Polygon To Line工具,需要注意的是先排除一下面要素類可能存在的重疊問題,再進行轉換。
2、如果需要獲取面要素完全轉換成單個線要素,使用上述的第3種實現方式,即Polygon Copy To Polyline,借助這種操作可以變相使用線要素類的自相交拓撲檢查面要素的自相交。
3、如果需要獲取面要素的公共邊,使用Interset工具,注意設置輸出類型為“Line”。
4、對於“面轉線”這個objective,想不出Feature To Line工具有啥鳥用。