KML → レイヤ(KML to Layer) (変換)

ライセンス レベル:BasicStandardAdvanced

サマリ

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

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

使用法

構文

KMLToLayer_conversion (in_kml_file, output_folder, {output_data}, {include_groundoverlay})
パラメータ説明データ タイプ
in_kml_file

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

File
output_folder

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

Folder
output_data
(オプション)

出力のファイル ジオデータベースとレイヤ(*.lyr)ファイルの名前。デフォルトで、入力 KML ファイルの名前となります。

String
include_groundoverlay
(オプション)

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

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

コードのサンプル

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

Python ウィンドウから、KMZ ファイルを FGDB に変換します。

import arcpy

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

次のスクリプトは 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

環境

関連トピック

ライセンス情報

ArcGIS for Desktop Basic: ○
ArcGIS for Desktop Standard: ○
ArcGIS for Desktop Advanced: ○
7/28/2014