FAQ
ArcPy (ArcMap): WKT 文字列を取得する

ナレッジ番号:3159 | 登録日:2023/05/29 | 更新日:2023/06/21

概要

WKT (Well Known Text) とは、フィーチャのジオメトリをテキスト形式で表現する時の書式です。フィーチャの WKT 文字列を取得するには、ジオメトリ トークンの 1 種である「SHAPE@WKT」を使用します。ここでは、指定したフィーチャクラスの WKT 文字列を取得するサンプル コードを紹介します。

サンプル コード

フィールドとして追加

import arcpy

# フィーチャクラス名またはフィーチャ レイヤー名
infc = 'layer'
# WKT 文字列を格納するためのフィールド名
outField ="txtWKT"
# WKT 文字列を格納するためのフィールドの長さ(※最大のフィールド長はデータ フォーマットによって異なります)
outFieldSize = 5000

# フィールドを追加
arcpy.AddField_management (infc,outField, "TEXT", "" , "", outFieldSize)

# 各フィーチャの WKT を取得
with arcpy.da.UpdateCursor(infc, ["SHAPE@WKT", outField]) as cursor:
    for row in cursor :
        print(row[0])
        row[1] = row[0]
        cursor.updateRow(row)

テキストとして出力

 import arcpy, os

# フィーチャクラス名またはフィーチャ レイヤー名
infc = 'layer'

# 同時に出力するフィールド名
outIDFld ="OID@"

# 出力先の csv ファイルを書き込みモードで開きます。
f = open("c:/Temp/textWKT.txt", "w")

# ヘッダーを付与する
outputLine = u"OID,WKT \n"
f.write(outputLine.encode("SHIFT-JIS"))

# 各フィーチャの WKT を取得
with arcpy.da.UpdateCursor( infc,[outIDFld, "SHAPE@WKT"]) as cursor:
    for row in cursor :
        outputLine = "{}, {}".format(row[0], row[1]) + "\n"
        f.write(outputLine.encode("SHIFT-JIS"))

#ファイルを閉じる
f.close()

補足情報

ジオメトリの読み取り

メタデータ

種類

製品