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 ネットワーク リンクを Explorer for ArcGIS、ArcGlobe、Google Earth、Google マップ、または Google モバイルに追加します。