Zusammenfassung
Verschiebt Punkte oder Stützpunkte so, dass diese mit den Stützpunkten, Kanten oder Endpunkten anderer Features genau lagegleich sind. Sie können Fangregeln angeben, um zu steuern, ob Eingabestützpunkte innerhalb einer angegebenen Entfernung am nächsten Stützpunkt, an einer Kante oder an einem Endpunkt gefangen werden.
Abbildung
Verwendung
Mit dem Parameter Fangumgebung können die Stützpunkte der Eingabe-Features von den Stützpunkten, Kanten und Endpunkten mehrerer Layer oder Feature-Classes gefangen werden. Wenn mehrere Fangregeln angegeben werden, werden dafür die folgenden Prioritäten verwendet: von oben nach unten im Werkzeugdialogfeld oder von links nach rechts bei der Skripterstellung.
Die Stützpunkte der Eingabe-Features werden innerhalb der angegebenen Entfernung am nächsten Stützpunkt, der Kante oder dem Endpunkt gefangen.
Im Parameter Fangumgebung können mehrere Fangregeln festgelegt werden, indem der gleiche Layer oder die gleiche Feature-Class mit einem anderen Typ (END | VERTEX | EDGE) verwendet wird.
Wenn ein Layer oder eine Feature-Class mit einer Selektion als Eingabe verwendet wird, werden nur die Stützpunkte der ausgewählten Features gefangen.
Beim Fangen von Features in einer Feature-Class an Features derselben Feature-Class, wird das Feature mit der niedrigeren Objekt- oder Feature-ID in der Regel an dem Feature mit der höheren Objekt-ID gefangen (OBJECTID-Feld oder FID-Feld für Shapefiles). Wenn beispielsweise Punkte OBJECTID=1 und OBJECTID=2 innerhalb der Fangentfernung liegen, wird der Punkt mit OBJECTID=1 an der Position des Punktes mit OBJECTID=2 gefangen (und nicht umgekehrt).
Syntax
Snap_edit (in_features, snap_environment)
Parameter | Erläuterung | Datentyp |
in_features | Die Eingabe-Features, deren Stützpunkte von den Stützpunkten, Kanten oder Endpunkten anderer Features gefangen werden. Die Eingabe-Features können Punkte, Multipoints, Linien oder Polygone sein. | Feature Layer |
snap_environment [[Features, Type, Distance],...] | Geben Sie die Feature-Classes oder Feature-Layer ein, die die Features enthalten, an denen gefangen werden soll. Komponenten der Fangumgebung:
Typoptionen für die Fangumgebung:
| Value Table |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
out_feature_class | Feature-Class |
Codebeispiel
Fangen – Beispiel (Python-Fenster)
Das folgende Python-Fenster-Skript veranschaulicht die Verwendung des Werkzeugs 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"]])
Fangen – Beispiel (eigenständiges Skript)
Klimazonengrenze wird von Vegetations-Layer-Grenze gefangen, um sicherzustellen, dass die gemeinsame Grenze lagegleich ist.
# 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])
Umgebungen
Lizenzinformationen
- ArcGIS Desktop Basic: Nein
- ArcGIS Desktop Standard: Ja
- ArcGIS Desktop Advanced: Ja