操作マップ レイヤの構築
各マップ アプリケーションには、特定のユーザ グループが使用する操作マップ レイヤのセットが必要です。たとえば、ユーザは、ベースマップ上に観測値、センサー フィードやクエリ結果を表示し、操作タスクを実行して特定の任務や目標を達成します。これらの操作レイヤには多くの場合、マップ レイヤの操作に使用するツールのセットも含まれます。
ごく一般的に使用される操作マップ レイヤについては、こちらをご参照ください。提供する操作情報の種類を理解するうえで参考になります。
操作マップ レイヤの特性
- 操作マップ レイヤは、エンド ユーザが日常業務を行うために閲覧および操作します。
- 通常、GIS マップ アプリケーションでベースマップ サービス上に追加で描画される独立したマップ サービスとして提供されます。
- GIS マップ アプリケーションには複数の操作レイヤが含まれる場合もあります。ただし、通常は、ユーザが使用する操作レイヤは、2、3 の専用マップ レイヤに限定します。
- 操作マップ レイヤは、レスポンスに優れ、描画を素早く、効率よく行う必要があります。操作マップ レイヤのコンテンツは、これを使用する判断や決定をサポートするために、更新され、常に最新の状態を保つ必要があります。操作マップ レイヤは使いやすく、理解しやすいものでなくてはなりません。操作マップ レイヤのこういった点が、ArcMap ドキュメントでの表示プロパティの設計方法や、ユーザ向け操作マップ レイヤの公開方法に影響します。
- GIS サービスを公開する場合、通常は、各操作マップ レイヤを別々の Web マップ サービスとして公開します。
- 各操作マップ レイヤは、スタンドアロンの ArcMap ドキュメントとして作成されます。
- ほとんどのアプリケーションでは、操作マップ レイヤは、ベースマップ サービスと同じ座標系を使用する必要があります。マップ投影をオンザフライで行えない簡単なクライアント アプリケーションはこれに当てはまります(Web ブラウザ アプリケーション、ArcGIS Explorer、Google Earth など)。
- ユーザが各操作マップ レイヤで情報の操作に使用するツールと機能のセットを定義する必要があります。詳細については、「操作レイヤを操作するツール」をご参照ください。
GIS ベースマップに使用されるデータセットによっては、Web マップ アプリケーション内の操作レイヤのデータ ソースとしてよく使用されるものがあることも注目に値します。このための設計を計画している場合は、それらのデータセットの操作マップ レイヤがベースマップ上にどうオーバーレイしているか、またベースマップとどう連携動作しているかを考慮する必要があります。
操作マップ サービスを公開する 3 つの方法
ユーザが GIS アプリケーションで使用する操作マップ サービスを公開するための一般的な方法は、次の 3 つがあります。
- ArcGIS Server を使用したダイナミック マップ サービスとして公開
- ArcGIS Server を使用したキャッシュされたマップ サービスとして公開
- クエリを使用して、特定の条件に合うフィーチャのサブセットを選択し、マップ グラフィックスとテキストを使用してクエリ結果を表示。
1. ダイナミック マップ サービスの公開
ArcGIS Server を使用して公開できるマップ サービスの種類の 1 つは、ダイナミック マップ サービスです。名前が示すとおり、マップ レイヤ表示が動的に生成されます。つまり、マップ サービスを表示するようサーバにリクエストするたびに、レンダリングが行われて表示されます。結果のマップ イメージは、リクエスト元のアプリケーションに送られ、ベースマップにオーバーレイされます。
ArcGIS Server を使用して提供するダイナミック マップ サービスを作成するには、まず ArcMap ドキュメントを作成し、マップ サービスとして公開する必要があります。結果のマップ サービスは、Web GIS マップ アプリケーションで 1 つのマップ レイヤとして使用されます。
操作レイヤ用の ArcMap ドキュメントは非常に単純で、1 つ、または少数の専用マップ レイヤのみが含まれます。結果のマップ サービスではデータへのアクセスが提供され、操作情報の表示や操作ができます。
このダイナミック マップ サービスは通常、ベースマップ サービス上に表示されます。操作マップ レイヤと、少数の他の専用操作マップ レイヤとを組み合わせて表示し、ステータス マップとすることもあります。
頻繁に更新されるマップ レイヤまたは分析モデルの結果として生成されるマップ レイヤを参照するマップ ドキュメントを、ArcMap で作成できます。たとえば、Web マップ アプリケーションでマップ レイヤを編集するユーザがいる場合、このマップ レイヤは動的であるべきです。このようなケースや他の多くのケースでは、マップを描画するたびに、マップ レイヤをレンダリングします。
ダイナミック マップ サービスには、操作レイヤの最新で正確なステータスを提供するという利点があります。ただし、動的マップ レイヤを使った方法では多くの場合、Web マップの描画がかなり遅くなります。そのため重要となるのは、ArcGIS Server で利用可能なきわめて高速の動的描画を用いたマップ サービス定義(MSD)ベースのマップ サービスを使用することです。MSD の詳細については、「マップ サービスのパフォーマンスと機能」をご参照ください。
2. キャッシュ マップ サービスの公開
操作マップ レイヤのもう 1 つの提供方法は、キャッシュ マップ サービスを使用することです。この方法では、マップ表示は事前に処理されて、マップ キャッシュに格納されます。この場合、ユーザがマップをサーバにリクエストするたびに、操作マップ レイヤの表示を生成する必要はありません。かわりに、適切なマップ タイルがサーバから取得され、パフォーマンスとスケーラビリティが大幅に向上します。
適用できるケースとして、操作マップ レイヤが静的で、変更の頻度が低い場合があります。この場合は、サーバからリクエストされるたびに新たにマップを処理するのではなく、マップを事前処理しておき、定期的に更新するという方法が取れます。この方法で、誰でも高速で効率的なマップ サービスにアクセスして使用できます。
キャッシュ マップ サービスはきわめてスケーラブルであるため、サーバ上の多くの同時ヒットにすばやく応答できます。大量のユーザ トラフィックが見込まれる場合、キャッシュを頻繁に更新する必要がありますが、レイヤをキャッシュするだけのメリットはあるでしょう。キャッシュ更新の最善策については、「マップ キャッシュの更新」をご参照ください。
キャッシュのタイルをすべて作成する時間あるいは空きディスク領域が確保できないなら、一部のタイルを事前に作成し、残りは必要になった時点で作成することをお勧めします。最初のユーザがマップ サーバにアクセスしたときに、マップ キャッシュがリクエストされたエリア(マップ タイルのセット)を処理し、キャッシュが構築されます。同じマップ タイルにアクセスする他のユーザは、新しいマップ キャッシュを使用することになります。ユーザがリクエストするたびに、キャッシュされたマップ タイルがあれば、それを取得します。ない場合は、タイルを処理してキャッシュします。マップ表示の処理を行う必要があるのは、最初のユーザのみです。他のユーザは操作レイヤのキャッシュされたマップを使用できます。
キャッシュ マップ サービスの構築の詳細については、「マップ キャッシュのヒントとベスト プラクティス」をご参照ください。
3. マップ グラフィックスとテキストとしてのクエリ結果の表示
操作情報を表示するのに最も効率的な方法の 1 つは、クエリの結果を使用することです。ユーザは GIS サーバを検索し、サーバはフィーチャ結果のセットを小さなレコード セットとして返します。サーバから返されるクエリ結果としては、フィーチャのセット、フィーチャの座標、各フィーチャの属性セットなどがあります。この結果は、対話型のグラフィックスと説明情報としてマップに表示されます。結果は操作、図表化およびサマリ処理ができ、クリックして各フィーチャの詳細情報にアクセスできるハイパーリンクとして使用できます。
この手法では、通常、結果のマップ レイヤを作成するアプリケーション プログラミングが必要です。各 Esri Web マッピング API には、クエリの実行方法、および結果をクライアント側グラフィックスとしてマップ上に表示する方法に関するヘルプが付属しています。