FAQ
ArcPy (ArcMap): データ フレームの範囲のポリゴンを作成する方法

ナレッジ番号:2908 | 登録日:2023/05/29 | 更新日:2024/11/21

概要

Python スクリプトを使用して、ArcMap のデータ フレームの範囲のポリゴン フィーチャクラスを作成する方法をご紹介します。

ここでは、現在のデータ フレームの範囲の座標値を取得してポリゴン オブジェクトを作成し、新規フィーチャクラスを作成し、フィーチャを追加します。追加されたフィーチャクラスにはデータ フレームの座標系を設定します。データ フレームの範囲は DataFrame オブジェクトのプロパティから取得できます。ここでは activeDataFrame プロパティから DataFrame オブジェクトを取得しています。

Image

※以下のサンプル コードを実行する場合は、ArcMap の [Python] ウィンドウをご利用ください。

サンプル コード

# Purpose : データ フレームの範囲のポリゴンを作成します。

# 現在のマップ ドキュメントとデータ フレームを取得します。
mxd = arcpy.mapping.MapDocument("CURRENT")
df = mxd.activeDataFrame

# データ フレームに座標系が定義されていない場合は、座標系を定義します。ここでは 日本測地系 2000(JGD 2000)を定義しています。
if df.spatialReference.name == "":
    df.spatialReference = arcpy.SpatialReference(4612)

# データ フレームの表示範囲を取得します。
dfExtent = df.extent
Xmax = dfExtent.XMax
Ymax = dfExtent.YMax
Xmin = dfExtent.XMin
Ymin = dfExtent.YMin

# Polygon オブジェクトを作成するには、ポリゴンの頂点となる Point オブジェクトと、ポイントを配列する Array オブジェクトを作成する必要があります。
# まず、Point コンストラクタに座標値を設定して Point オブジェクトを作成します。
pointObject1 = arcpy.Point(Xmax, Ymax)
pointObject2 = arcpy.Point(Xmax, Ymin)
pointObject3 = arcpy.Point(Xmin, Ymin)
pointObject4 = arcpy.Point(Xmin, Ymax)

# 作成した Point オブジェクトを、Array オブジェクトに追加します。
# Point オブジェクトは時計回りの順番で追加します。
arrayObject = arcpy.Array()
arrayObject.add(pointObject1)
arrayObject.add(pointObject2)
arrayObject.add(pointObject3)
arrayObject.add(pointObject4)

# ポリゴンを閉じるために始点の座標値を再度追加して、ポリゴンを作成します。
arrayObject.add(pointObject1)

# Array オブジェクトを使用して、Polygon オブジェクトを作成します。
polygonFeature = arcpy.Polygon(arrayObject)

# Polygon オブジェクトをフィーチャクラスとして出力します。
outputFeatureClass = r"C:\FAQ\database.gdb\extentPolygon"
arcpy.CopyFeatures_management(polygonFeature, outputFeatureClass)

# データ フレームの座標系を出力フィーチャクラスに定義します。
coordSystem = df.spatialReference
arcpy.DefineProjection_management(outputFeatureClass, coordSystem)

# マップを最新の状態に更新します。
arcpy.RefreshActiveView()

# オブジェクトへの参照を削除し、解放します。
del mxd

免責事項

こちらのサンプルはあくまでもコーディングの見本であり、実行時に発生したエラーの対処方法につきましては、サポート対象外とさせていただきます。また、操作方法やソースコードに関するご質問は別途有償の開発者サポート契約にてご対応させていただきます。なお、コードを実行して生じたいかなる損害についても弊社では責任を負いかねます。

メタデータ

機能

種類

製品