FAQ
ArcPy: ポイントを中心としたポリゴンを作成する

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

概要

ポイント フィーチャを中心としたポリゴンを、サイズ指定で一括作成するためのサンプル コードを紹介いたします。

Python サンプル コード

ポイントの座標からポリゴンの四隅の座標を取得し、それらを囲むポリゴンを反復処理で作成します。

import arcpy

# 入力ポイント フィーチャ(あらかじめ投影座標系に変換しておきます。)
inFC = r"C:\Project\_Forums\pointInterpol\fgdb\test.gdb\points"
# 作成する四角形のサイズ
h = 1000 # 高さ
w = 1500 # 幅
# 出力フィーチャクラス
outFC = r"C:\Project\_Forums\pointInterpol\fgdb\test.gdb\diamonds01"

# ポイントの XY 座標
pXY = ("SHAPE@XY")

features = []
with arcpy.da.SearchCursor(inFC, pXY) as cursor:
    for row in cursor:
        arrPnts = arcpy.Array()
        X = row[0][0]
        Y = row[0][1]

        # ポイント 1 点目(始点)
        pnt = arcpy.Point(X-w/2,Y-h/2)
        arrPnts.add(pnt)

        # ポイント 2 点目
        pnt = arcpy.Point(X-w/2,Y+h/2)
        arrPnts.add(pnt)

        # ポイント 3 点目
        pnt = arcpy.Point(X+w/2,Y+h/2)
        arrPnts.add(pnt)

        # ポイント 4 点目
        pnt = arcpy.Point(X+w/2,Y-h/2)
        arrPnts.add(pnt)

        # ポイント 5 点目 (始点と同じ座標)
        pnt = arcpy.Point(X-w/2,Y-h/2)
        arrPnts.add(pnt)

        pol = arcpy.Polygon(arrPnts)
        features.append(pol)

# 出力
arcpy.CopyFeatures_management(features, outFC)

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

メタデータ

機能

種類

製品