KML → レイヤ(KML to Layer) (変換)
サマリ
KML や KMZ ファイルをフィーチャクラスとレイヤ ファイルに変換します。レイヤ ファイルは元の KML あるいは KMZ ファイルにあるシンボルを維持します。
使用法
このツールは、フィーチャ データセット内にフィーチャクラスを含むファイル ジオデータベースを作成します。フィーチャクラスは KML ファイルにある元のフィーチャに応じて、ポイント、ライン、ポリゴンあるいはマルチパッチと名前が付けられます。ファイル ジオデータベースと同じフォルダ レベルに、レイヤ ファイル(*.lyr)が置かれます。レイヤ ファイルを ArcMap に追加してフィーチャを描画できます。このレイヤ ファイルはポイント、ライン、あるいはポリゴンのスキーマに基づいたフィーチャを描写しますが、元の KML シンボルは維持します。
作成された各フィーチャクラスには、元の KML ファイルの情報を維持する属性が含まれます。元のフォルダ構造、名前、および情報だけでなく、どのようにフィーチャが地表に位置するかを定義するフィールドのすべてが各フィーチャの属性を構成します。
ラスタ、あるいはグラウンド オーバーレイはファイル ジオデータベース内のラスタ カタログへ変換されます。ネイティブ形式のソース ラスタは出力ファイル ジオデータベースと同じレベルにある [GroundOverlays] フォルダで利用可能です。
注意:オーバーレイの変換に [KML → レイヤ(KML to Layer)] ツールを用いると、ソース データに応じて時間がかかる場合があります。KML 内にあるすべてのラスタとオーバーレイが変換されます。KML が画像を提供するサービスを参照している場合はすべての画像が変換されます。非常に詳細な画像はファイルのサイズが大きいので変換に時間がかかる場合があります。
出力は、WGS84 座標系で生成されます。出力フィーチャは、[投影変換(Project)] ツールを使用して、必要に応じて別の座標系に再投影できます。
-
KMZ バージョン 2.2 までの OGC KML 標準の大部分をサポートしています。(ジオコーディングによる)アドレス タグを使うポイント位置はサポートしていません。有効な緯度位置と経度位置がソース KML 内に必要です。
構文
パラメータ | 説明 | データ タイプ |
in_kml_file |
変換する KML または KMZ ファイル。 | File |
output_folder |
ファイル ジオデータベースとレイヤ(*.lyr)ファイルの格納先となるフォルダ。 | Folder |
output_data (オプション) |
出力のファイル ジオデータベースとレイヤ(*.lyr)ファイルの名前。デフォルトで、入力 KML ファイルの名前となります。 | String |
include_groundoverlay (オプション) | (ラスタ、航空写真などの)グラウンド オーバーレイを含む。KMZ がラスタ画像を提供するサービスを参照している場合は注意してください。ツールはラスタ画像を、使用可能なすべてのスケールに変換しようとします。この処理は時間がかかったりサービスをハングアップさせたりするかもしれません。
| Boolean |
コードのサンプル
Python ウィンドウから、KMZ ファイルを FGDB に変換します。
import arcpy
arcpy.KMLToLayer_conversion(r'C:\kmls\earthquakes.kml',r'C:\gisdata\fromkmls','earthquake_09')
次のスクリプトは KMZ ファイルと KML ファイルをそれぞれのファイル ジオデータベースに変換します。これらのファイル ジオデータベース内のフィーチャクラスは 1 つのファイル ジオデータベースに集約されます。
注意: このスクリプトは KML → レイヤ ツールからレイヤ ファイルを保護しません。
# 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 featureclases
import arcpy, os
# Set workspace (where all the KMLs are)
arcpy.env.workspace="C:/VancouverData/KML"
# Set local variables and location for the consolidated file geodatabase
outLocation = "C:/WorkingData/fGDBs"
MasterGDB = 'AllKMLLayers.gdb'
MasterGDBLocation = os.path.join(outLocation, MasterGDB)
# Create the master FileGeodatabase
arcpy.CreateFileGDB_management(outLocation, MasterGDB)
# Convert all KMZ and KML files found in the current workspace
for kmz in arcpy.ListFiles('*.KM*'):
print ("CONVERTING: " + os.path.join(arcpy.env.workspace,kmz))
arcpy.KMLToLayer_conversion(kmz, outLocation)
# Change the workspace to fGDB location
arcpy.env.workspace = outLocation
# Loop through all the FileGeodatabases within the workspace
wks = arcpy.ListWorkspaces('*', 'FileGDB')
# Skip the Master GDB
wks.remove(MasterGDBLocation)
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
featureClasses = arcpy.ListFeatureClasses('*', '', 'Placemarks')
for fc in featureClasses:
print ("COPYING: {0} FROM: {1}".format(fc, fgdb))
fcCopy = fgdb + os.sep + 'Placemarks' + os.sep + fc
arcpy.FeatureClassToFeatureClass_conversion(fcCopy, MasterGDBLocation, fgdb[fgdb.rfind(os.sep)+1:-4] + "_" + fc)
# Clean up
del kmz, wks, fc, featureClasses, fgdb