提取中心线 (制图)
摘要
基于指定的宽度容差从双线要素(如道路轮廓)提取中心线。
插图
用法
-
该工具用于处理规则且接近平行的线对,例如大比例的道路轮廓。中心线仅在末端开口的线之间创建,而不会在可能是街区的封闭线内创建。该工具不能对包含立交桥、斜坡、天桥和地下通道的多车道公路进行简化,也不能对带有多个合并轨道的铁路进行简化。在这种情况下,可改为使用合并分开的道路工具。
-
该工具不能在编辑模式下执行。
-
输出要素类不具有输入线的地理属性,但会包含以下三个新字段:
- LnType - 包含以下线类型值:
- 值 1 表示提取的中心线
- 值 2 表示相对复杂的交点(未生成中心线的位置)周围的轮廓线、所表示的道路的宽度超过指定范围的线,以及其他断开或不成对的线。
- 值 3 表示源轮廓不清晰的线(它们通常连接两个紧邻的交点,事实上这两个交叉点可能属于一个大交点。)
- LeftLn_FID - 包含提取的中心线左侧的输入线的对象 ID。对于 LnType 等于 2 和 3 的线,该字段值将为零。
- RightLn_FID - 包含提取的中心线右侧的输入线的对象 ID。对于 LnType 等于 2 和 3 的线,该字段值将为零。
可以使用 LnType 值进一步检查未解决的交点和较宽的道路;还可以根据需要将 LeftLn_FID 和 RightLn_FID 字段与“连接字段”工具结合使用,以将源线的属性传递给中心线。
- LnType - 包含以下线类型值:
语法
CollapseDualLinesToCenterline_cartography (in_features, out_feature_class, maximum_width, {minimum_width})
参数 | 说明 | 数据类型 |
in_features |
用于提取中心线的输入双线要素(如道路轮廓)。 | Feature Layer |
out_feature_class |
要创建的输出要素类。 | Feature Class |
maximum_width |
设置用来提取中心线的双线要素的最大宽度。必须指定一个值,且该值必须大于零。可以选择首选单位;默认为要素单位。 | Linear unit |
minimum_width (可选) |
设置用来提取中心线的双线要素的最小宽度。最小宽度必须大于或等于零,且必须小于最大宽度。默认值为零。可以指定首选单位;默认为要素单位。 | Linear unit |
代码示例
CollapseDualLinesToCenterline 示例(Python 窗口)
以下 Python 窗口脚本演示了如何在即时模式下使用 CollapseDualLinesToCenterline 工具。
import arcpy from arcpy import env import arcpy.cartography as CA env.workspace = "C:/data" CA.CollapseDualLinesToCenterline("dual_line_roads.shp", "C:/output/output.gdb/road_centerlines", 50)
CollapseDualLinesToCenterline 示例 2(独立脚本)
以下独立脚本演示了如何使用 CollapseDualLinesToCenterline 工具。
# Name: CollapseDualLinesToCenterline_Example2.py # Description: Create road centerlines and find buildings within a given distance # Author: ESRI # Import system modules import arcpy from arcpy import env import arcpy.cartography as CA import arcpy.management as DM import arcpy.analysis as AN # Set environment settings env.workspace = "C:/data/Portland.gdb" # Set local variables inRoadCasingsFeatures = "road_casings" inHouseFeatures = "houses" centerlineFeatures = "C:/data/PortlandOutput.gdb/road_centerlines" bufferFeatures = "C:/data/PortlandOutput.gdb/road_buffers" # Create centerlines for road casings. CA.CollapseDualLinesToCenterline(inRoadCasingsFeatures, centerlineFeatures, 80) # Create buffers 100 units from around centerlines. AN.Buffer(centerlineFeatures, bufferFeatures, 100) # Select houses by buffers. DM.SelectLayerByLocation(inHouseFeatures, "intersect", bufferFeatures, 100)
相关主题
许可信息
ArcView: 否
ArcEditor: 否
ArcInfo: 是
7/10/2012