チュートリアル: KML サービスの公開
KML ケーパビリティが有効な状態の ArcGIS Server マップ サービスを公開することによって、Web 上で KML を動的に提供することができます。これによってクライアントはマップ サービスに接続して、特定の地理領域の KML データをリクエストすることができます。KML は、REST のマップの生成、KML の生成、およびクエリの操作のいずれか、ArcGIS Services Directory 内の表示: Google Earth リンク、またはサービスへの正しい URL が埋め込まれた KML ネットワーク リンク ドキュメントを通じて提供されます。
このチュートリアルでは、3D 立ち上げが適用されたフィーチャを作成する手順を示します。まず初めに ArcGlobe を使用して、3D 立ち上げプロパティを設定したレイヤ ファイルを作成します。次に、ArcMap にレイヤを追加して、レイヤ シンボルを設定し、KML 内のフィーチャに関連する説明テキストを設定します。次に、KML ケーパビリティが有効化されたサービスとしてマップを公開します。最後に、他のユーザが KML に簡単にアクセスできるよう、サーバ上で KML ネットワーク リンクを作成します。
チュートリアルを始める前に
現在 ArcGIS Server をインストールしただけの状態であれば、サーバに接続してサービスを公開する前に、いくつかの準備作業が必要です。
- ArcGIS Server サイトを構成する方法については、このヘルプ システムの「インストール後の作業」セクションをご参照ください。
- GIS リソースで参照されているデータをサーバで利用できるようにする方法については、「データを ArcGIS Server でアクセス可能にする」をご参照ください。
ArcGlobe および ArcMap でのデータの準備
Z 値や属性に基づく立ち上げなどの 3D 属性を持つフィーチャクラスを公開するには、ArcGlobe でフィーチャクラス レイヤのプロパティを編集し、それらをレイヤ ファイルとして保存した後、そのレイヤ ファイルを ArcMap ドキュメントに追加する必要があります。以下に、ArcGlobe での立ち上げの適用方法、および後で ArcMap で使用することができるレイヤファイルの保存方法の手順を示します。
- ArcGlobe を起動し、フィーチャクラスを追加します。
- コンテンツ ウィンドウで、レイヤを右クリックして [プロパティ] をクリックします。
- [グローブの立ち上げ] タブをクリックします。
- [レイヤのフィーチャを立ち上げます] チェックボックス、および [立ち上げポリゴンの底面は描画しない] チェックボックスをオンにします。また、立ち上げの適用方法で [各フィーチャの標高値から立ち上げ] を選択します。
- ArcGlobe で [グローブの立ち上げ] タブをクリックします。
-
立ち上げの値または条件式を設定します。これによって、フィーチャがマップから立ち上がる度合いを決定します。ヘルプ機能を利用して条件式を構築する場合は、[式の設定] を開きます。この場合は、POP10_SQMI 属性の値に 250 を掛けて(POP10_SQMI * 250)、この値をフィーチャの標高値に加算した値でポリゴン フィーチャが立ち上げられます。これは表示の目的のみで選択した任意の値です。必要に応じた表示設定を得るために、条件式で試してみる必要があるかもしれません。
- レイヤ ファイルの立ち上げを設定して、それが三次元に見えたら、レイヤを右クリックして [レイヤ ファイルとして保存] を選択します。
- これでデータの 3D プロパティを定義できました。次に 2D レイヤのプロパティを設定します。ArcMap を開いて、[データの追加] をクリックします。
- ArcGlobe で保存した新しいレイヤ ファイル(*.lyr)を参照して、[追加] をクリックします。レイヤは ArcMap 内に 3D で表示されませんが、そのマップを Google Earth または ArcGIS Explorer で表示すると 3D で表示されます。
- レイヤを右クリックし、ショートカット メニューから [プロパティ] を選択して、レイヤのプロパティを設定します。
- [一般] タブをクリックして、レイヤの [縮尺範囲] を編集し、説明を入力します。この説明は、KML レイヤの説明として KML クライアントで表示され、HTML の記法を用いることができます。
- 必要に応じて、[表示] タブをクリックして、レイヤの透過設定を変更します。透過度が小さく設定されると、ユーザは下にあるベースマップを透過して見ることができます。
- 必要に応じて、[シンボル] タブをクリックしてレンダリング プロパティを変更します。微妙なグラデーションの塗りつぶしによって、3D の隣接フィーチャを区別することができます。
- [フィールド] タブをクリックし、マップ サービスを通じてアクセスすることのできるフィールドを設定します。フィーチャクラスの任意のフィールドを変更して、[KMLSnippet] エイリアスを使用することもできます。KMLSnippet エイリアスを設定したフィールドの値は、KML クライアントのコンテンツ ウィンドウで各フィーチャのアイコンの下に表示されます。
- 必要に応じて、データに適用したいフィルタ設定またはテーブル結合およびリレートを設定します。この設定を行うには、[フィルタ設定] および [属性の結合とリレート] タブをそれぞれ使用します。
- 必要に応じて、[ラベル] タブをクリックして、適用したいラベリングを指定します。KML は、ポイント フィーチャに対して、色、サイズ、ラベル条件式をサポートします。KML は、ラインまたはポリゴンに対するラベリングをサポートしていません。
- [HTML ポップアップ] タブをクリックして、[ポップアップ ツールを使用してレイヤのコンテンツを表示] をオンにします。次に、形式のオプションの 1 つを選択します。これによって各フィーチャに対する KML の説明、つまりフィーチャをクリックするとバルーン吹出しに表示されるコンテンツが決定されます。説明文を装飾的に見せるために、HTML、JavaScript、スタイルシートを使用するか、または単に試してみるだけならば、HTML 形式で表示するために [表示フィールドをテーブルとして表示] デフォルト オプションを選択することができます。
- [OK] をクリックしてレイヤ プロパティを閉じ、[ファイル] → [保存] の順にクリックしてマップ ドキュメントを保存します。
KML サービスの公開
マップ ドキュメントが完了したら、これをマップ サービスとして公開する必要があります。マップ サービスは、その KML ケーパビリティが有効である限り、KML を生成することができます。デフォルトでは、KML ケーパビリティは有効になっています。
- ArcMap のメイン メニューで、[ファイル] → [共有] → [サービス] の順に選択します。
- [サービスとして共有] ウィンドウで、[サービスを公開] を選択します。[次へ] をクリックします。
- [サービスを公開] ダイアログ ボックスで、[ArcGIS Server に接続] をクリックして、ArcGIS サーバへの新しい接続を作成します。
- [ArcGIS Server サーバの追加] ウィンドウで、[GIS サービスを公開する] を選択します。[次へ] をクリックします。
- [サーバの URL] に、接続する ArcGIS Server サイトの URL を入力します。URL の例は http://gisserver.domain.com:6080/arcgis です。
- [サーバ タイプ] ドロップダウン リストから、[ArcGIS Server] を選択します。
- 公開プロセス中に、サービス定義ファイルが作成され、ローカルのディスクに一時的に保存されます。公開プロセスが完了すると、サービス定義がサーバにアップロードされ、ローカル ファイルは削除されます。このチュートリアルでは、デフォルトのステージング フォルダを使用して操作を続けます。
- サーバ管理者が ArcGIS Server のセキュリティを有効にしている場合は、[ユーザ名] と [パスワード] に値を入力します。[完了] をクリックします。
- 必要に応じて、[サービスを公開] ウィンドウでサービスの新しい名前を入力します。120 文字を超える名前や、英数字とアンダースコア(_)以外の文字が含まれた名前を使用することはできません。[次へ] をクリックします。
- デフォルトでは、ArcGIS Server のルート フォルダ(root)にサービスが公開されます。サービスはルート フォルダ以下のサブディレクトリに整理することができます。サービスを公開するフォルダを選択するか、サービスを格納する新しいフォルダを作成します。[続行] をクリックします。
- サービス エディタが表示されます。[サービス エディタ] を使用して、KML サービスでユーザが実行できる操作を選択し、サーバが KML サービスを公開する方法を調整します。[ケーパビリティ] タブをクリックします。
-
デフォルトでは、マッピングと KML が有効になっています。[サービス エディタ] の左側のペインで、[KML] をクリックして以下のプロパティを編集します。
- KML サービスで許可するオペレーションを選択します。各オペレーションの詳細については、「ArcGIS Server での KML のサポート」をご参照ください。
- KML サービスから返される KML の制限法を選択します。[KML 互換性モード] のオプションでは、サービスが主に Google Earth、Google マップ、または Google モバイルで使用される場合に、機能の限定されたサブセットのみを含めるように選択することができます。これによってパフォーマンスが向上します。
- KML サービスから返されるフィーチャの制限、出力画像サイズ、およびクライアントの出力 DPI を制限する方法を選択します。
- [NetworkLinkControl タグの使用] オプションを使用して、サービスがクライアントからリクエストされる頻度を制限します。
ヒント:KML サービスを配備するための最適な構成方法については、「サービスのチューニングと構成」をご参照ください。
-
[統計情報の更新] をクリックします。マップ ドキュメントをサーバに公開できるかどうかが検証されます。
ヒント:
KML サービスを構成するときに表示領域を広くするには、[サービス エディタ] の上部にある [折りたたみ] ボタンをクリックします。
-
[準備] ウィンドウでエラー を修正します。エラーの修正は公開の前に行う必要があります。さらに必要であれば、警告メッセージと情報メッセージに従って問題を修正し、KML サービスのパフォーマンスと外観を改善します。これらの問題の解決の詳細については、「GIS リソースの分析」をご参照ください。
注意:
サーバが確実にデータを認識して使用できるように、フォルダとジオデータベースを ArcGIS Server サイトに登録することができます。以下の手順を続ける場合、未登録のフォルダまたはジオデータベースからマップ ドキュメントが参照するデータはすべて、公開時にサーバにコピーされます。これは、サーバがサービスで使用されているすべてのデータにアクセスできることを保証するための予防的な処置です。フォルダまたはジオデータベースを ArcGIS Server サイトに登録する手順については、「ArcGIS for Desktop を使用したデータの ArcGIS Server への登録」をご参照ください。
- 必要に応じて、[サービス エディタ] で [プレビュー] をクリックします。Web 上でマップがどのように表示されるかを確認することができます。詳細については、「マップのプレビュー」をご参照ください。
- マップ ドキュメント内のエラーを修正したら、[公開] をクリックします。
- サービスは公開されました。カタログ ウィンドウの [GIS Servers] ノードを展開し、サービスを ArcMap のコンテンツ ウィンドウにドラッグすることでプレビューできます。
ArcGIS Server Services Directory で提供される REST KML の操作
デフォルトでは、各 ArcGIS Server は Services Directory を提供しており、これにより REST を使用してサービスの検索および操作をすることができます。KML サービスの操作を習得するために Services Directory を使用することができます。
- Web ブラウザを開き、Services Directory に移動します。URL は通常、http://gisserver.domain.com:6080/arcgis/rest/services です。
- サービス リストで、KML サービスの名前をクリックします。サービスが表示されない場合は、フォルダ内に配置されている可能性があります。
- [フットプリント表示: Google Earth] リンクをクリックして、サービスのグラウンド オーバーレイを示す KMZ ドキュメントを開きます。または、サービスがキャッシュされている場合には、KML Region 対応のスーパー オーバーレイが表示されます。このリンクではベクタを取得できないことに注意してください。
- Services Directory に戻って、サービス内の任意のレイヤをクリックします。
- ページの下部にある [Query] リンクをクリックします。これによってフォームが開き、そこでレイヤを検索する多くのパラメータを指定することができます。最後のオプションは、レスポンスを受けるためのフォーマットです。形式として [KMZ] を選択すると、クエリの結果を含む KMZ ドキュメントが表示されます。
- Services Directory 内のサービスのページに戻ります。
- ページの下部にある [Generate KML] をクリックします。このリンクでは Web フォームが表示され、KML へ返すレイヤを選択することができます。オプションである [Vector layers as vectors and raster layers as images] を選択することによって、サービスからベクタを動的に返すことを選択することもできます。
マップ サービスからのネットワーク リンクの作成
ArcGIS Server Manager で KML ネットワーク リンクを作成することにより、サーバ上で KML を利用しやすい形式で提供することができます。続いて、ArcGIS Explorer、ArcGlobe、または Google Earth でネットワーク リンクを追加できます。
- ArcGIS Server Manager を開いてログインします。この手順の詳細については、「ArcGIS Server Manager へのログイン」をご参照ください。
- [サービス] → [KML ネットワーク リンク] → [ネットワーク リンクの作成] の順にクリックします。
- リンクの名前を指定します。指定した名前はファイル名として使用され、ネットワーク リンク ファイルの Name タグに埋め込まれます。
- 必要に応じて、[外部ホスト名] を指定します。
- 必要に応じて、短い説明と長い説明を入力します。長い説明には、HTML タグと URL を埋め込むことができます。
- 必要に応じて、スニペットの動作を指定します。デフォルトでは、スニペットの表示は無効になっています。[次へ] をクリックします。
- [マップ サービス] ドロップダウン リストで、公開したばかりのマップ サービスを選択します。また、KML ネットワーク リンクを使用して公開したいレイヤを選択します。
- [フィーチャ レイヤはベクタとし、ラスタ レイヤはイメージとする] オプションを選択します。立ち上げが適用されたフィーチャはベクタなので、このオプションを選択する必要があります。オプションを選択しなければ、「平らな」ラスタ イメージが表示されます。
- 必要に応じて、デフォルトの互換性モードを特定の Google クライアントに設定します。
- 必要に応じて、[表示範囲で更新]、[表示範囲の縮尺]、および [時間をベースに更新] パラメータを調整します。更新の後にブラウザで表示するように選択することもできます。このチュートリアルでは、デフォルトのオプションを使用します。[次へ] をクリックします。
- 必要に応じて、[緯度]、[経度]、[範囲]、[機首方向]、[傾斜] パラメータを設定して、ネットワーク リンクの表示を設定します。このチュートリアルでは、デフォルトのオプションを使用します。
- [作成] をクリックして、KML ネットワーク リンクを作成します。
Manager で [KML ネットワーク リンク] モジュールに戻ると、新しいネットワーク リンクの URL が表示されます(たとえば、http://gisserver.domain.com:6080/arcgis/kml/networklink01.kmz)。この URL をクリックするか、コピーして貼り付けて、KML ネットワーク リンクを ArcGIS Explorer、ArcGlobe、Google Earth、Google マップ、または Google モバイルに追加します。