标注 | 说明 | 数据类型 |
输入要素 | 将用于提取中心线的输入双线要素(如道路轮廓)。 | Feature Layer |
输出要素类 | 将创建的输出要素类。 | Feature Class |
最大宽度 | 将用于提取中心线的双线要素的最大宽度。 必须指定一个值,且该值必须大于零。 可以指定单位;默认为要素单位。 | Linear Unit |
最小宽度 (可选) | 将用于提取中心线的双线要素的最小宽度。 最小宽度必须大于或等于零,且必须小于最大宽度。 默认值为零。 可以指定单位;默认为要素单位。 | Linear Unit |
摘要
基于指定的宽度容差从双线要素(道路轮廓)提取中心线。
插图
使用情况
该工具用于处理规则且接近平行的线对,例如大比例的道路轮廓。 中心线仅在末端开口的线之间创建,而不会在可能是街区的封闭线内创建。 该工具不能对包含立交桥、斜坡、天桥和地下通道的多车道公路进行简化,也不能对带有多个合并轨道的铁路进行简化。 对于这些情况,请使用合并分开的道路工具。
输出要素类不具有输入线的地理属性,但将包含以下新字段:
- LnType - 包含以下线类型值:
- 使用值 1 表示提取的中心线。
- 使用值 2 表示相对复杂的交点(未生成中心线的位置)周围的轮廓线、所表示的道路的宽度超过指定范围的线,以及其他断开或不成对的线。
- 使用值 3 表示源轮廓不清晰的线(它们通常连接两个紧邻的交点,这两个交叉点可能属于一个大交点。)
- LeftLn_FID - 包含提取的中心线左侧的输入线的对象 ID。 对于 LnType 等于 2 和 3 的线,该字段值将为零。
- RightLn_FID - 包含提取的中心线右侧的输入线的对象 ID。 对于 LnType 等于 2 和 3 的线,该字段值将为零。
可以使用 LnType 值进一步检查未解决的交点和较宽的道路;还可以根据需要将 LeftLn_FID 和 RightLn_FID 字段与连接字段工具结合使用,以将源线的属性传递给中心线。
- LnType - 包含以下线类型值:
参数
arcpy.cartography.CollapseDualLinesToCenterline(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 |
代码示例
以下 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 函数。
# Name: CollapseDualLinesToCenterline_Example2.py
# Description: Create road centerlines and find buildings within a given distance
# 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)
许可信息
- Basic: 否
- Standard: 否
- Advanced: 是