描述
移动点或折点,使其与其他要素的折点、边或端点精确重合。可指定捕捉规则来控制是将输入折点捕捉到指定距离范围内的最近折点、边还是端点。
插图
使用
捕捉环境参数用于将输入要素的折点捕捉到多个图层或要素类的折点、边和端点。当给出多个捕捉规则时,它们的优先级如下:在工具对话框中为从上到下,或在脚本中从左到右。
输入要素的折点将捕捉到指定距离范围内最近的折点、边或端点。
在捕捉环境参数中,可将同一个图层或要素类与不同的捕捉类型 (END | VERTEX | EDGE) 结合使用来指定多个捕捉规则。
如果将包含选择内容的图层或要素类用作输入,将仅捕捉所选要素的折点。
如果将某要素类中的要素捕捉到同一要素类中的要素,通常情况下,对象 ID 或要素 ID 较低的要素会被捕捉到对象 ID 较高的要素。(shapefiles 的 OBJECTID 字段或 FID 字段)。例如,如果 OBJECTID=1 和 OBJECTID=2 点位于捕捉距离范围内,则将 OBJECTID=1 的点捕捉到 OBJECTID=2 点的位置(反之则不然)。
语法
Snap(in_features, snap_environment)
参数 | 说明 | 数据类型 |
in_features | 折点将被捕捉到其他要素的折点、边或端点的输入要素。输入要素可以是点、多点、线或面。 | Feature Layer |
snap_environment [[Features, Type, Distance],...] | 输入包含您希望捕捉到的要素的要素类或要素图层。 捕捉环境的组成部分:
捕捉环境类型选项:
| Value Table |
派生输出
名称 | 说明 | 数据类型 |
out_feature_class | 更新后的输入要素。 | 要素类 |
代码示例
Snap 示例 1(Python 窗口)
下面的 Python 窗口脚本演示了如何使用 Snap 工具。
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.Snap_edit("climate.shp",
[["Habitat_Analysis.gdb/vegtype", "VERTEX", "30 Feet"],
["Habitat_Analysis.gdb/vegtype", "EDGE", "20 Feet"]])
Snap 示例 2(独立脚本)
将气候区域边界捕捉到植被图层边界以确保公共边界重合。
# Name: Snap.py
# Description: Snap climate regions boundary to vegetation layer boundary
# to ensure common boundary is coincident
# import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data"
# Make backup copy of climate regions feature class, since modification with
# the Editing tools below is permanent
climate = "climate.shp"
climateBackup = "C:/output/Output.gdb/climateBackup"
arcpy.CopyFeatures_management(climate, climateBackup)
# Densify climate regions feature class to make sure there are enough vertices
# to match detail of vegetation layer when layers are snapped
arcpy.Densify_edit(climate, "DISTANCE", "10 Feet")
# Snap climate regions feature class to vegetation layer vertices and edge
veg = "Habitat_Analysis.gdb/vegtype"
# first, snap climate region vertices to the nearest vegetation layer vertex within 30 Feet
snapEnv1 = [veg, "VERTEX", "30 Feet"]
# second, snap climate region vertices to the nearest vegetation layer edge within 20 Feet
snapEnv2 = [veg, "EDGE", "20 Feet"]
arcpy.Snap_edit(climate, [snapEnv1, snapEnv2])
环境
许可信息
- Basic: 否
- Standard: 是
- Advanced: 是