概要
このツールは、フィーチャまたはラスター レイヤーを、Esri ジオメトリおよびシンボルの変換を保存する KML ファイルに変換します。このファイルは ZIP 圧縮を使用して圧縮され、拡張子は .kmz になり、ArcGIS Earth、ArcGlobe、および Google Earth などの KML クライアントで読み込むことができます。
使用法
KML の外観は 2 つの方法で制御できます。
- HTML ポップアップ設定、表示式や KMLSnippet のエイリアスなどのレイヤー プロパティが設定されている場合、これらは KML の作成に用いられます。
- レイヤー プロパティが設定されておらず、フィーチャクラスが特定の属性 (フィールド) を持っている場合は、フィールド プロパティが KML の作成に使用されます。[KML → レイヤー (KML To Layer)] ツールで作成されたレイヤーには、KML の作成方法を定義する属性が含まれています。
-
レイヤーに縮尺依存の表示プロパティがある場合は、適切なマップの出力縮尺を選択すれば、出力 KMZ ドキュメントのサイズを縮小できます。
すべての KML ファイルおよび KMZ ファイルは、WGS84 座標系で作成されます。WGS84 にレイヤーがない場合、レイヤーが正しく投影することを確認する必要があります。投影法に変換が必要な場合、[投影変換 (Project)] ツールを使用すると、KML 変換の前にデータを再投影することができます。
地形上にドレープされた単一のラスター イメージを出力するには、[単一コンポジット画像を作成] オプションを使用します。
アタッチメントのある入力フィーチャは、出力 .kmz ファイルに格納されます。.kmz ファイル内のアタッチメントについては、次の条件に注意してください。
- アタッチメントにより、出力ファイルのサイズは大幅に増加します。
- KML クライアントで KML ファイルを使用する場合、アタッチメントは KML ポップアップから利用できます。
- アタッチメントを除外するには、ツールを実行する前に [アタッチメントの保持] 環境設定を無効化します。
- すべての KML クライアントがアタッチメントの表示を等しくサポートしているわけではありません。一部の KML クライアント アプリケーションは、画像や PDF などのアタッチメントをより強力にサポートしています。
構文
LayerToKML(layer, out_kmz_file, {layer_output_scale}, {is_composite}, {boundary_box_extent}, {image_size}, {dpi_of_client}, {ignore_zvalue})
パラメーター | 説明 | データ タイプ |
layer | KML に変換されるフィーチャ、ラスター レイヤー、またはレイヤー ファイル (*.lyr)。 | Layer |
out_kmz_file | 書き込み対象となる KML ファイル。このファイルは圧縮され、拡張子は .kmz になります。ArcGIS Earth、ArcGlobe、Google Earth などのあらゆる KML クライアントを使用して読み取ることができます。 | File |
layer_output_scale (オプション) | レイヤーのエクスポート時の縮尺。このパラメーターは、レイヤー表示または縮尺依存のレンダリングなどの縮尺依存で使用されます。レイヤーがエクスポート時の縮尺で表示されなければ、そのレイヤーは作成された KML ファイルに含まれません。縮尺依存がない場合、0 などの任意の値が使用できます。 3D ベクターとして表示されるレイヤーをエクスポートしており、is_composite パラメーターが NO_COMPOSITE に設定されている場合は、フィーチャに縮尺依存のレンダリングがない限り、任意の数値を設定できます。 入力できるのは数値だけです。たとえば、縮尺として「20000」は入力できますが、「1:20000」や「20,000」は使用できません。 | Double |
is_composite (オプション) |
| Boolean |
boundary_box_extent (オプション) | エクスポート対象のエリアの表示範囲です。範囲矩形は、WGS84 座標系のスペース区切りの文字列として左下および右上の座標 (xmin、ymin、xmax、ymax) を指定する必要があります | Extent |
image_size (オプション) | [単一コンポジット画像を作成] パラメーターが使用されているときに垂直および水平の解像度を定義します。このパラメーターと [出力画像の DPI] パラメーターを使用して、出力画像の解像度を制御します。 | Long |
dpi_of_client (オプション) | [単一コンポジット画像を作成] パラメーターが使用されているときに KML 出力のデバイス解像度を定義します。このパラメーターと [出力画像サイズ (ピクセル)] パラメーターを使用して、出力画像の解像度を制御します。 | Long |
ignore_zvalue (オプション) |
| Boolean |
コードのサンプル
LayerToKML (レイヤー → KML) の例 1 (Python ウィンドウ)
次の Python ウィンドウ スクリプトは、イミディエイト モードで LayerToKML 関数を使用する方法を示しています。
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.LayerToKML_conversion("bldg.lyr", "bldg.kmz")
LayerToKML (レイヤー → KML) の例 2 (スタンドアロン スクリプト)
次の Python スクリプトは、スタンドアロン スクリプトで LayerToKML 関数を使用する方法を示しています。
# Name: LayerToKML Example
# Description: The following stand-alone script demonstrates how to find
# all layer files in a given workspace and export each to
# a KML at the 1:10,000, 1:20,000, and 1:30,000 scale using
# the LayerToKML tool.
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data"
# Use the ListFiles method to identify all layer files in workspace
if len(arcpy.ListFiles("*.lyr")) > 0:
for layer in arcpy.ListFiles("*.lyr"):
# Set Local Variables
composite = 'NO_COMPOSITE'
pixels = 2048
dpi = 96
clamped = 'CLAMPED_TO_GROUND'
for scale in range(10000, 30001, 10000):
# Strips the '.lyr' and adds scale + _.kmz
outKML = layer[:4] + str(scale) + "_.kmz"
#Execute LayerToKML
arcpy.LayerToKML_conversion(layer, outKML, scale, composite,
'', pixels, dpi, clamped)
else:
arcpy.AddMessage('There are no layer files in '+arcpy.env.workspace+'.')
環境
ライセンス情報
- Basic: はい
- Standard: はい
- Advanced: はい