KML → レイヤー (KML To Layer) (変換)

概要

KML や KMZ ファイルをフィーチャクラスとレイヤー ファイルに変換します。レイヤー ファイルは元の KML あるいは KMZ ファイルにあるシンボルを維持します。

ArcGIS での KML のサポートの詳細

使用法

  • このツールは、フィーチャ データセット内にフィーチャクラスを含むファイル ジオデータベースを作成します。フィーチャクラスは KML ファイルにある元のフィーチャに応じて、pointlineポリゴン、あるいは multipatches と名前が付けられます。ファイル ジオデータベースと同じフォルダー レベルに、レイヤー ファイルが置かれます。レイヤー ファイルをマップに追加してフィーチャを描画できます。このレイヤー ファイルはポイント、ライン、あるいはポリゴンのスキーマに基づいたフィーチャを描写しますが、元の KML シンボルは維持します。

    作成された各フィーチャクラスには、元の KML ファイルの情報を維持する属性が含まれます。元のフォルダー構造、名前、および情報だけでなく、どのようにフィーチャが地表に位置するかを定義するフィールドのすべてが各フィーチャの属性を構成します。

  • ラスター、あるいはグラウンド オーバーレイは、ファイル ジオデータベース内のモザイク データセットへ変換されます。 ネイティブ形式のソース ラスターは出力ファイル ジオデータベースと同じレベルにある [GroundOverlays] フォルダーで利用可能です。デフォルトでは、グラウンド オーバーレイは変換されません。ラスターを作成するには、[グラウンド オーバーレイを含める] オプションを使用します。

    メモ:

    オーバーレイの変換に [KML → レイヤー (KML to Layer)] ツールを用いると、ソース データに応じて時間がかかる場合があります。KML 内にあるすべてのラスターとオーバーレイが変換されます。KML が画像を提供するサービスを参照している場合はすべての画像が変換されます。非常に詳細な画像はファイルのサイズが大きいので変換に時間がかかる場合があります。

  • 出力は、WGS84 座標系で生成されます。出力フィーチャは、[投影変換 (Project)] ツールを使用して、必要に応じて別の座標系に再投影できます。

  • KMZ バージョン 2.2 までの OGC KML 標準の大部分をサポートしています。(ジオコーディングによる) アドレス タグを使うポイント位置はサポートしていません。有効な緯度位置と経度位置がソース KML 内に必要です。

  • ArcGIS Pro 1.3 リリースでは、KML および KMZ がデータ ソースとしてネイティブにサポートされるようになりました。KML レイヤーにジオプロセシング処理を実行するには、ファイル ジオデータベース内のフィーチャに変換する必要があります。[KML → レイヤー (KML to Layer)] ツールを使用して、[コンテンツ] メニューから KML レイヤーを選択し、ツールの [入力 KML ファイル] パラメーターにドラッグします。変換が完了したら、新しい出力に対してジオプロセシング処理を実行します。

構文

arcpy.conversion.KMLToLayer(in_kml_file, output_folder, {output_data}, {include_groundoverlay})
パラメーター説明データ タイプ
in_kml_file

変換する KML または KMZ ファイル。

File; KML Layer
output_folder

ファイル ジオデータベースとレイヤー (*.lyrx) ファイルの格納先となるフォルダー。

Folder
output_data
(オプション)

出力のファイル ジオデータベースとレイヤーファイルの名前。デフォルトは、入力 KML ファイルの名前です。

String
include_groundoverlay
(オプション)

(ラスター、航空写真などの) グラウンド オーバーレイを含む。KMZ がラスター画像を提供するサービスを参照している場合は注意してください。ツールはラスター画像を、使用可能なすべてのスケールに変換しようとします。この処理は時間がかかったりサービスをハングアップさせたりするかもしれません。

  • GROUNDOVERLAYグラウンド オーバーレイが出力に含まれます。
  • NO_GROUNDOVERLAYグラウンド オーバーレイが出力に含まれません。これがデフォルトです。
Boolean

派生した出力

名前説明データ タイプ
output_layer

出力レイヤー ファイル。

グループ レイヤー
out_geodatabase

フィーチャ データセット内のフィーチャクラスを含む出力ジオデータベース。

ワークスペース

コードのサンプル

KMLToLayer (KML → レイヤー) の例 1 (Python ウィンドウ)

Python ウィンドウから、KMZ ファイルをファイル ジオデータベースに変換します。

import arcpy

arcpy.KMLToLayer_conversion(r'C:\kmls\earthquakes.kml',r'C:\gisdata\fromkmls','earthquake_09')
KMLToLayer (KML → レイヤー) の例 2 (スタンドアロン スクリプト)

次のスクリプトは KMZ ファイルと KML ファイルをそれぞれのファイル ジオデータベースに変換します。これらのファイル ジオデータベース内のフィーチャクラスは 1 つのファイル ジオデータベースに集約されます。

メモ:
このスクリプトは KMLToLayer ツールからレイヤー ファイルを保護しません。

# Name: BatchKML_to_GDB.py
# Description: Converts a directory of KMLs and copies the output into a single 
#              fGDB. A 2 step process: first convert the KML files, and then 
#              copy the feature classes.
# Import system modules
import arcpy
import os
# Set workspace (where all the KMLs are)
arcpy.env.workspace = "C:/VancouverData/KML"
# Set local variables and location for the consolidated file geodatabase
out_location = "C:/WorkingData/fGDBs"
gdb = 'AllKMLLayers.gdb'
gdb_location = os.path.join(out_location, gdb)
# Create the master FileGeodatabase
arcpy.CreateFileGDB_management(out_location, gdb)
# Convert all KMZ and KML files found in the current workspace
for kmz in arcpy.ListFiles('*.KM*'):
    print("CONVERTING: {0}".format(os.path.join(arcpy.env.workspace, kmz)))
    arcpy.KMLToLayer_conversion(kmz, out_location)
# Change the workspace to fGDB location
arcpy.env.workspace = out_location
# Loop through all the FileGeodatabases within the workspace
wks = arcpy.ListWorkspaces('*', 'FileGDB')
# Skip the Master GDB
wks.remove(gdb_location)
for fgdb in wks:  
    # Change the workspace to the current FileGeodatabase
    arcpy.env.workspace = fgdb
    # For every Featureclass inside, copy it to the Master and use the name 
    # from the original fGDB  
    feature_classes = arcpy.ListFeatureClasses('*', '', 'Placemarks')
    for fc in feature_classes:
        print("COPYING: {} FROM: {}".format(fc, fgdb))
        fcCopy = os.path.join(fgdb, 'Placemarks', fc)
        arcpy.FeatureClassToFeatureClass_conversion(
            fcCopy, gdb_location, fgdb[fgdb.rfind(os.sep) + 1:-4])

ライセンス情報

  • Basic: はい
  • Standard: はい
  • Advanced: はい

関連トピック