KML として公開するためのマップの作成

ユーザがマップに KML としてアクセスする可能性がある場合は、特定のデザイン パターンに従う必要があります。このトピックには、KML の特定の機能が利用できるようにマップを準備するためのヒントも含まれています。たとえば、ユーザが KML サービスを表示してポイントをクリックしたとき、ポップアップ ウィンドウには何が表示されるでしょうか。あるいは、KML Regions を使用する高性能なサービスを作成するにはどうすればよいでしょうか。ここでは、サービスの公開に先立ち、マップの作成段階で準備する必要があるものの例を示します。

マップに追加できるもの

マップにはベクタ レイヤとラスタ レイヤの両方を追加することができます。これらのフィーチャ タイプで設定したラベルは、KML にも含まれます。

サービスを公開した後は、クライアントが実際のベクタ フィーチャを取得できるのか、それともマップのラスタ化された画像を表示できるのかを選択することができます。同様に、マップ内のラベルがラスタ化されるか、グローブ上で平らに表示されるか、またはグローブ上で立ち上がり、ユーザがマップを回転させたときに回転するか(「ビルボード」ラベルとも呼ばれます)を指定することもできます。

ラベルを操作する

マップ内のラベルは KML に変換されます。ラベル テキストは、ArcMap の [レイヤ プロパティ] ダイアログ ボックスの [ラベル] タブで選択したフィールドに基づきます。

すべてのフィールドを無効にすると、ラベル テキストは [主フィールド] に基づきます(主フィールドの詳細については、「フィールド プロパティ、エイリアス、テーブル表示オプションの概要」をご参照ください)。

KML でサポートされるラベル効果は、サイズと色のみです。影やハローなどのラベル効果は KML に変換できません。フィーチャに適用できるラベルは 1 つだけです。

デスクリプションとスニペットの設定

デスクリプションとスニペットは、KML で属性情報を提供するための 2 つの方法です。スニペットとは、何か(タイトルなど)を説明する短いテキストです。デスクリプションはそれよりも長い説明であり、テキスト、リンク、ピクチャ、その他のメディアを含んでいることがあります。

デスクリプションは、フィーチャをクリックしたときに表示される情報提供用のポップアップ ウィンドウに表示される内容を決定します。スニペットは、コンテンツ ウィンドウに表示されるテキストを定義します。説明とスニペットは、フィーチャ レベル、レイヤ レベル、データ フレーム レベル、ネットワーク リンク レベルなど、さまざまなレベルで適用することができます。

スニペットの設定

デフォルトでは、スニペットの表示は無効になっています。この設定を変更するには、Manager で KML ネットワーク リンクを公開するときに、[デフォルトの KML スニペットの振舞いを抑制する] のチェックを外します。これにより、スニペットが定義されている場合は、それが使用されるようになります。スニペットが定義されていない場合は、デスクリプションの最初の 2 行が使用されます。

スニペットの使用を選択すると、それらはデータ内のフィールドから取得されます。[KMLSnippet] というエイリアスを割り当てることにより、スニペットに表示されるフィールドを選択します。このエイリアスを割り当てることができるフィールドは 1 つだけです。

デスクリプションの設定

デスクリプションの設定は、ネットワーク リンク、データ フレーム、レイヤ、個々のフィーチャのどれに適用するかによって異なります。

  • ネットワーク リンクのデスクリプションを構成できるのは、サービスをネットワーク リンクとして公開するときだけです。
  • データ フレームのデスクリプションは、[データ フレーム プロパティ] ダイアログ ボックスの [一般] タブの [説明] ボックスに含まれている内容に基づきます。

  • レイヤのデスクリプションは、[レイヤ プロパティ] ダイアログ ボックスの [一般] タブの [説明] ボックスに含まれている内容に基づきます。

  • 個々のフィーチャのデスクリプションは、[レイヤ プロパティ] ダイアログ ボックスの [HTML ポップアップ] タブで指定した XSL スタイルシートによって設定されます。<ArcGIS インストール ディレクトリ>\Styles\HTMLPopup にサンプル スタイルシートがいくつか含まれています。

    XSL スタイルシートでは、フィーチャ属性値を使用して、ポップアップ ウィンドウを HTML で構築することができます。たとえば、モデル パラメータを定義するための属性値を使用して、KMZ を返すジオプロセシング タスク結果へのリンクを作成することができます。これにより、KML ブラウザ環境で実際の GIS にアクセスできます。また、属性値をクエリ パラメータとして使用し、同じような方法でレイヤ クエリの結果にリンクすることもできます。さらに、フィーチャ内の属性によって参照されるイメージまたは Flash ビデオを表示することもできます。つまり、Web 上のあらゆる HTML コンテンツにリンクすることができます。

    クエリまたはジオプロセシング タスクからの KML は、すべてのフィールドが返される場合にのみポップアップを使用します。一部のフィールドしか返さない場合、スタイルシートが存在しないフィールドを参照しているために予想外の振舞いにつながることがあります。すべてのフィールドが返されない場合は、フィールド名と属性値からなる単純な HTML テーブルが返されます。

長く複雑なデスクリプションは、KML クライアント アプリケーションのパフォーマンスを低下させる可能性があります。パフォーマンスを重視する場合は、長いデスクリプションを避けてください。デスクリプションを短くするために、同じ内容の Web ページへの単純なリンクを追加することを検討してください。

フィーチャ密度が非常に高く、スタイルシートが複雑な場合は、フィーチャごとにスタイルシートが適用され、パフォーマンスが低下することがあります。

フィーチャの立ち上げ

Z オフセットや立ち上げフィーチャなどの 3D 属性を持つフィーチャクラスを公開する場合は、ArcGlobe でフィーチャクラス レイヤのプロパティを編集し、フィーチャクラスをレイヤ ファイルとして保存した後、そのレイヤ ファイルを ArcMap ドキュメントに追加する必要があります。

たとえば、人口密度属性を持つポリゴン フィーチャクラスがあると想定します。このフィーチャクラスを、人口密度の高いポリゴンほど飛び出して(立ち上がって)見えるように、3D KML で表示したいと考えます。これを実行するには、ArcGlobe でそのフィーチャクラスの立ち上げプロパティを設定し、フィーチャクラスをレイヤ ファイルとして保存した後、そのレイヤ ファイルを ArcMap ドキュメントに追加します。ArcMap では標高エフェクトや立ち上げエフェクトは表示されませんが、公開した KML では 3D 表示されます。

このプロセスの詳細については、「チュートリアル:KML サービスの公開」をご参照ください。

凡例の設定

KML サービスのレイヤを説明する凡例を提供することができます。サーバはマップ ドキュメントのレイアウト ビューで凡例を検索します。凡例が検出されると、それらは KML に埋め込まれます。

凡例は動的であり、マップ フィーチャのいずれかのシンボルまたはマップの縮尺(縮尺範囲が設定された凡例の場合)を変更したときに更新されます。凡例をグラフィックに変更すると KML に埋め込まれなくなるので注意してください。

凡例はそれぞれ KML においてスクリーン オーバーレイとして表示されます。つまり、ユーザがマップの画面移動やズームを行っても画面上に表示されたままとなります。ユーザは、候補値のフォルダから凡例が画面上に配置される場所を選択することができます(北、北西、西など)。

ヒント: このマップを KML 専用に使用する場合は、ArcMap レイアウトにおける凡例の位置について心配する必要はありません。

その他の例

KML の公開用にマップ ドキュメントを準備するワークフローの例については、ArcGIS Desktop ヘルプの「KML の例」をご参照ください。


7/10/2012