KML(Keyhole Markup Language)は、ArcGIS Explorer や Google Earth など、アプリケーション内の地理フィーチャを表すために使用される XML ベースのファイル形式です。KML により、マップまたはグローブ上にポイント、ライン、ポリゴンを描画し、それらを他のユーザと共有することができます。KML を使用して、テキスト、ピクチャ、ムービー、またはユーザがフィーチャをクリックしたときに表示される他の GIS サービスへのリンクを指定することもできます。多くの KML クライアント アプリケーションは無償であり、ユーザにとってわかりやすいナビゲーション環境を提供します。
ArcGIS Server での KML の機能
ArcGIS Server では、マップやデータをさまざまな方法で KML として共有することができます。
- マップ サービスとイメージ サービスは、REST(Representational State Transfer)を通じて KML ネットワーク リンクを公開します。
- Manager または Services Directory を使用して、独自の KML ネットワーク リンクを作成することができます。
- マップ レイヤを検索する、あるいは REST を通じてジオプロセシングまたはジオコーディング操作を実行する場合は、結果を KML として取得することができます。
このような場合、KML は動的に生成されるため、KML を表示するユーザにはサーバからの最新のマップとデータが常に表示されます。電子メールで送信したり、ファイル サーバに保存したりできる静的 KML ドキュメントを生成する場合は、ArcGIS for Desktop の [マップ → KML(Map to KML)] ツールおよび [レイヤ → KML(Layer To KML)] ツールを使用できます。
KML を返すためのマップ サービスとイメージ サービスの構成
マップとイメージを動的 KML として共有するには、ArcGIS for Desktop を使用して、それらをサービスとして公開します。マップ サービスとイメージ サービスはどちらも KML を返すことができます。これらのサービスをサーバに公開するときには、KML ケーパビリティがデフォルトで有効になっています。
サービスを公開する前に、少し準備作業が必要になります。マップ サービスでは、まず、KML として利用できるようにしたいレイヤが含まれたマップ ドキュメントを準備する必要があります。このマップ ドキュメントでは、KML に反映される特定のラベリング、レンダリング、シンボル、および HTML ポップアップ ウィンドウのプロパティを指定することができます。3D プロパティは、ArcGlobe で設定し、レイヤ ファイルとしてマップ ドキュメントにインポートする必要があります。
イメージ サービスには、ラスタ データセット、モザイク データセット、またはラスタ データセットかモザイク データセットを参照するレイヤ ファイルが必要です。レイヤ ファイルを使用して特定のレンダラを定義し、イメージ サービスを希望どおりに表示させることもできます。
KML と REST
すべてのマップ サービスとイメージ サービスでは、REST を使用して KML ネットワーク リンクを公開します。簡単に言うと、REST はアクセス可能な一連の URL を通じてサービスに関する情報を公開するための手段です。Services Directory を使用して、ネットワーク リンクへの URL を調べることができます。Services Directory は、サーバ上の REST エンドポイントを操作するのに役立つアプリケーションです。URL は、Google Earth または KML ネットワーク リンクをサポートする他のクライアントに追加できる *.kmz ファイルをポイントします。
デフォルトのネットワーク リンクを使用したくない場合は、Manager または Services Directory を使用して、独自のネットワーク リンクを生成することができます。REST、KML ネットワーク リンク、および ArcGIS Server によるそれらの操作については、「KML としてのサービスの表示」をご参照ください。
サーバ上で提供されるサービスの表示
Services Directory を通じて、サーバ上のすべてのマップ サービスとイメージ サービスのフットプリントを表示することもできます。さらに、サービスの位置と説明を表示するフットプリント KML ネットワーク リンクにアクセスできます。このフットプリント ネットワーク リンクは、サーバ上で利用可能なサービスを他のユーザに示すためのガイドとして使用することができます。
ジオコーディング、ジオプロセシング、および検索の結果の KML
マップ サービスは、ジオプロセシング、ジオコーディング、検索操作の結果を KML として返すことができます。これらのサービスはクライアント アプリケーションで使用することができ、解析時に REST URL に直接入力して使用することもできます。この方法により、アプリケーションやユーザはオンライン ジオデータベースから情報を選択して KML 形式で取得することができます。
KML サービスのオペレーション
KML サービスに組み込まれたオペレーションを使用すると、KML クライアントでサーバに対するさまざまなリクエストを実行できます。マップと画像を公開するときには、[別々のイメージ] オペレーション、[単一のイメージ] オペレーション、および [ベクタ] オペレーションがデフォルトで有効になります。
- [別々のイメージ] により、KML クライアントは、サービスの各レイヤに対して、KML グラウンド オーバーレイなどの個別の画像を返すように要求することができます。たとえば、KML クライアントを通じて KML サービスを見ている場合に、サービス内の各レイヤの透過表示を調整できます。
- [単一のイメージ] により、KML クライアントは、サービスのすべてのレイヤに対して、単一コンポジット画像を KML グラウンド オーバーレイとして要求することができます。これは、マップ サービスのマップ イメージのエクスポート オペレーションとよく似ています。
- ベクタにより、KML クライアントは、サポートされるすべてのレイヤからそれぞれのジオメトリ タイプとして個別のフィーチャを返すように要求することができます。これには、ポイント、ライン、ポリゴンを含めることができます。
ArcGIS for Desktop で [サービス エディタ] の [KML] タブを使用して、これらのオペレーションの 1 つを無効にすることができます。
サポートされている KML 機能
KML サービスでサポートされる機能のリストを次に示します。
- KML 2.2 互換の KML の生成
- REST を通じた KML の自動提供
- KML Regions を使用した、キャッシュされたマップ サービスの REST 経由での表示
- イメージ サービスでの KML の利用
- REST を通じたサービス フットプリントの KML としての利用
- ほとんどの ArcMap ラベリング機能のサポート
- ラベルを無効にする機能
- ArcMap の [レイヤ プロパティ] ダイアログ ボックスの [HTML ポップアップ] タブで指定した形式(KML フィーチャの説明への変換)