スナップ(Snap) (編集)

ライセンス レベル:BasicStandardAdvanced

サマリ

ポイントまたは頂点を、他のフィーチャの頂点、エッジ、または端点の位置と正確に一致するように移動します。スナップ ルールを指定すれば、入力頂点のスナップ先(指定した距離範囲で最も近くにある頂点、エッジ、または端点)を制御できます。

Snap Illustration
Snap Cases

使用法

構文

Snap_edit (in_features, snap_environment)
パラメータ説明データ タイプ
in_features

入力フィーチャの頂点は、他のフィーチャの頂点、エッジ、または端点にスナップします。入力フィーチャとして、ポイント、マルチポイント、ライン、またはポリゴンを指定できます。

Feature Layer
snap_environment
[[Features, Type, Distance],...]

スナップ環境の要素:

  • フィーチャ - 入力フィーチャの頂点のスナップ先となるフィーチャ。ポイント、マルチポイント、ライン、またはポリゴンを指定できます。
  • タイプ - 入力フィーチャの頂点のスナップ先となるフィーチャ部分のタイプ(END | VERTEX | EDGE)。
  • 距離 - ここに指定した距離範囲にある頂点、エッジ、または端点に入力フィーチャの頂点をスナップできます。

スナップ環境のタイプ オプション:

  • END入力フィーチャの頂点はフィーチャの端点にスナップします。
  • VERTEX入力フィーチャの頂点はフィーチャの頂点にスナップします。
  • EDGE入力フィーチャの頂点はフィーチャのエッジにスナップします。
注意注意:

[スナップ環境] パラメータで距離の単位が指定されていない場合(10 メートルではなく 10 など)、入力フィーチャの座標系の長さまたは角度の単位がデフォルトとして使用されます。入力フィーチャで投影座標系が使用されている場合、長さの単位が使用されます。

Value Table

コードのサンプル

Snap の例(Python ウィンドウ)

次の Python ウィンドウのスクリプトではスナップ ツールが使用されています。

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
# Author: ESRI

# import system modules 
import arcpy
from arcpy import env

# Set environment settings
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])

環境

関連トピック

ライセンス情報

ArcGIS for Desktop Basic: ×
ArcGIS for Desktop Standard: ○
ArcGIS for Desktop Advanced: ○
5/10/2014