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".
同样, 我们看一下它的特征:
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 工具有啥鸟用.
来源: http://www.bubuko.com/infodetail-3259743.html