高速なマップ サービスを作成するための最も効果的な方法は、それらをキャッシュすることです。マップ サービスをキャッシュするとき、サーバーは定義した一連の縮尺レベルでマップを描画し、イメージを保存します。サーバーがマップへのリクエストを受け取ったときにマップを再び描画するよりも、キャッシュされたイメージの 1 つを返すほうがはるかに高速です。
キャッシュは、ベースマップと頻繁に変更しないマップに適しています。まれにしか変更しないマップのために、キャッシュを更新するためのツールが用意されています。パフォーマンスを最適化するためには、できるだけ多くのレイヤーをキャッシュする必要があります。マップを 2 つ作成し、キャッシュに適したレイヤーとキャッシュに適さないレイヤーを分離することで効率的な場合があります。たとえば、キャッシュされたマップ サービスをベースマップ レイヤーから作成し、キャッシュされないマップ サービスを、リアルタイムに更新されるレイヤー、または解析やモデリングにより変化するレイヤーから作成することができます。
効果的なマップ キャッシュを作成するためには、キャッシュを構築する前に入念な設計と作成作業を行う必要があります。このトピックでは、キャッシュされるマップの計画と作成手順について説明します。続いてマップ サービスを公開し、キャッシュを作成するタイミングを指定します。最後に、クライアント アプリケーションでキャッシュをテストします。
開始する前に
現在 ArcGIS Server をインストールしただけの状態であれば、ArcMap でサーバーに接続してサービスを公開する前に、いくつかの準備作業が必要です。
- ArcGIS Server サイトを構成する方法については、ヘルプの「インストール後の作業」をご参照ください。
- GIS リソースで参照されているデータをサーバーで利用できるようにする方法については、「データを ArcGIS Server でアクセス可能にする」をご参照ください。
マップの作成
マップをキャッシュするとき、サーバーは指定した一連の縮尺でマップを描画します。マップを一度描画したら、キャッシュを再作成するか更新しない限り、その表示方法を変更することはできません。これには 2 つの重要な意味があります。
- マップは、そのキャッシュを作成する時点で、各縮尺レベルでのマップが適切に表示されている必要があります。紙の地図は 1 つの縮尺で適切に表示されるように設計されていますが、キャッシュされたマップはキャッシュするすべての縮尺に対応するように設計されている必要があります。
- 縮尺レベルの選択は非常に重要です。選択した縮尺が少なすぎると、情報が抜けているか、地図が適切に表示されていないとユーザーが感じる可能性があります。選択した縮尺が多すぎたり、不要な縮尺を選択したりすると、キャッシュの作成に時間がかかり、より多くの格納領域が必要になります。逆に、キャッシュ時に使用するタイル スキーマがすでに組織で決定されている場合もあります。タイル スキーマは、作成時の縮尺レベルなど、キャッシュの特定のプロパティを決定します。
座標系の指定
このマップを設計するときには、特定の座標系を使用するようにデータ フレームを設定する必要があります。これは、キャッシュ タイルを表示するときに使用する座標系です。
- ArcMap を起動して、新しい空のマップ ドキュメントを開きます。
- ArcMap の [コンテンツ] ウィンドウで、データ フレーム名 (デフォルトは [レイヤー]) を右クリックし、[プロパティ] を選択します。
- [座標系] タブをクリックして、マップに使用する座標系を選択します。
- [OK] をクリックします。
マップの設計
ここからが本当のマップ設計作業です。マップをキャッシュする利点の 1 つは、設計段階において、パフォーマンスへの影響を心配せずに、すべてのカートグラフィック ツールを自由に使用できることです。キャッシュを一度作成したら、キャッシュを再作成または更新しない限りは変更することができなくなるため、時間をかけて、適切に表示されるマップを設計するようにしてください。キャッシュのユーザーも、サーバー上に格納されたマップの既存のイメージを表示しているだけなので、シンボルを変更することができません。
縮尺間隔ごとにマップを設計することをお勧めします。これは、ラスター データの場合は簡単です。縮尺を変更すると ArcMap がデータのリサンプリングを行うからです。これに対し、ベクター データは各縮尺で同じサイズのポイントとラインでシンボル表示されるため、マップが煩雑になりすぎたり、まばらになりすぎたりしないよう、もう少し作業を行う必要があります。次に、マップにベクター データが含まれている場合に使用できる設計手順を示します。
- ArcMap で、データセットを追加して最小の縮尺まで縮小します。必要に応じて、投影の問題を修正します。正しくキャッシュするためには、すべてのデータセットで同じ投影を使用する必要があります。
- この縮尺に合わせてレイヤーのシンボルとラベルを設定します。
ヒント:
この縮尺で表示されるフィーチャを少なくするために、フィルター設定を定義することを検討してください。たとえば、市区町村レイヤーがある場合は、人口が 30 万人以上の市区町村だけを表示するフィルターを設定できます。
- 1 段階上の縮尺に拡大し、この縮尺に合わせてレイヤーのシンボルとラベルを設定します。
ヒント:
別の縮尺ですでにシンボル表示したレイヤーのシンボル、ラベル、またはフィルター設定を変更したい場合は、マップにレイヤーのコピーをもう 1 つ追加します。そのためには、ArcMap の [コンテンツ] ウィンドウでレイヤーを右クリックし、[コピー] をクリックします。次に、データ フレーム名を右クリックし、[レイヤーの貼り付け] をクリックします。
- グループ レイヤーを作成して、レイヤーのコピーを管理します。縮尺ごとにグループ レイヤーを 1 つ作成するのが最も簡単です。そうすると、個々のレイヤーではなくグループに縮尺依存を設定するだけで済みます。縮尺を名前に含めることもできます。
- グループ レイヤーごとに縮尺範囲を設定して、キャッシュされた縮尺ごとに 1 つだけ表示されるようにします。キャッシュ縮尺ごとの許容値で縮尺範囲を設定します。たとえば、グループ レイヤーの 1 つが 1:577,791 でキャッシュされる場合、1:866,686 よりも縮小したり、1:433,343 よりも拡大したりした場合にのみレイヤーが表示されるように設定できます。
- 縮尺リスト内のすべての縮尺が処理されるまで、次の縮尺にズームして適切にシンボル表示する作業を続けます。
- マップを保存します。これでマップを公開する準備が整いました。
マップの公開とキャッシュの作成
ArcMap を使用してマップ ドキュメントを ArcGIS Server で公開します。この処理を実行する間に、マップ キャッシュのスキーマを定義し、マップ ドキュメントのパフォーマンスを解析します。キャッシュを作成するタイミングも指定します。
- ArcMap でマップ ドキュメントを開き、メイン メニューで [ファイル] > [共有] > [サービス] の順に選択します。
- [サービスとして共有] ウィンドウで、[サービスを公開] を選択します。[次へ] をクリックします。
- [サービスを公開] ダイアログ ボックスで、[ArcGIS Server に接続] をクリックして、サーバーへの接続を新規に作成します。
- [ArcGIS Server サーバーの追加] ウィンドウで、[GIS サービスを公開する] を選択します。[次へ] をクリックします。
- [サーバーの URL] に、接続する ArcGIS Server サイトの URL を入力します。URL の形式は http://gisserver.domain.com:6080/arcgis になります。
- [サーバー タイプ] ドロップダウン リストから、[ArcGIS Server] を選択します。
- ArcGIS Server で公開者以上の権限を持つ [ユーザー名] と [パスワード] を入力します。セキュリティのためにユーザーとロールを設定していない場合は、1 つの選択肢として、サイトの作成時に定義したプライマリ サイト管理者のアカウントを使用します。入力したユーザー名とパスワードを保存するには、チェックボックスをオンのままにします。その後 [完了] をクリックします。
- 必要に応じて、[サービスを公開] ウィンドウでサービスの新しい名前を入力します。[次へ] をクリックします。
- デフォルトでは、ArcGIS Server のルート フォルダー (root) にサービスが公開されます。サービスはルート フォルダー以下のサブディレクトリに整理することができます。サービスを公開するフォルダーを選択するか、サービスを格納する新しいフォルダーを作成します。[続行] をクリックします。
- [サービス エディター] が表示されます。[サービス エディター] を使用して、キャッシュされたマップ サービスでユーザーが実行できる操作の選択、キャッシュ スキーマの定義、およびサーバーがサービスを公開する方法の調整を行います。[キャッシュ] タブをクリックします。
- [キャッシュ] タブで [キャッシュのタイルを使用] を選択し、キャッシュを使用してマップ サービスを描画するように設定します。
- [タイル スキーマ] ドロップダウン リストから、キャッシュのタイル スキーマを選択します。タイル スキーマにより、タイルを作成するときの縮尺と、タイルの境界が決まります。これには、キャッシュの座標系に関する情報と、それ以外のいくつかのプロパティが含まれます。タイル スキーマを選択するには、次のような方法があります。
- ArcGIS Online、Bing Maps、および Google マップ キャッシュと同じタイル スキーマを使用したい場合は、[ArcGIS Online / Bing Maps / Google マップ] を選択します。マップ内のデータは、このタイル スキーマの必須の座標系、つまり WGS 1984 Web メルカトル (球体補正) にリアルタイムに再投影されます。
- WGS84 地理座標系、バージョン 2 キャッシュと同じタイル スキーマを使用する場合、タイル スキーマ ファイルを選択して C:\Program Files (x86)\ArcGIS\Desktop10.5\TilingSchemes\WGS84_Geographic_Coordinate_System_V2.xml を参照します。マップ内のデータは、このタイル スキーマの必須の座標系、つまり WGS 1984 にリアルタイムに再投影されます。
- 独自のタイル スキーマを使用したい場合は、[タイル スキーマ ファイル] を選択し、[マップ サービス キャッシュ タイル スキーマの生成 (Generate Map Server Cache Tiling Scheme)] ツールを使用して作成したタイル スキーマ XML ファイルを参照します。
- 別の既存のマップ サービスと同じタイル スキーマを使用したい場合は、[既存のキャッシュされたマップ/イメージ サービス] を選択し、サービスを参照します。
- ArcGIS に縮尺の候補を表示させたい場合は、[自動設定] をクリックし、縮尺の数を入力します。このオプションが推奨されるのは、実験またはテスト目的の場合のみです。ほとんどの場合は、特定の縮尺レベルを想定してマップを設計しているはずです。
- スライダーを使用して [詳細レベル] プロパティを設定します。
多くの場合、タイル スキーマには多数の縮尺が含まれています。マップによっては、タイル スキーマ内の一部の極めて大きい縮尺または小さい縮尺のキャッシュを行わないようにすることができます。ArcGIS は、マップの縮尺依存を調べて、キャッシュの縮尺の最小範囲と最大範囲を示します。この範囲は自由に調整できます。残りの縮尺はタイル スキーマから削除されませんが、このダイアログ ボックスに戻って範囲に含めない限り、それらの縮尺でタイルを作成することはできません。
- サービスの公開時に自動的にキャッシュを公開するかどうか、またはサービスを公開した後にキャッシュを手動で構築するかどうかを選択します。これらのオプションは、[サービス エディター] の下部にあります。
表示された [推定キャッシュ サイズ]、および付属ユーティリティで、より正確な [キャッシュ サイズの計算] を参考にしてこの選択を行います (これらの推定の詳細については、「マップ キャッシュのサイズの推定」をご参照ください)。キャッシュが大きい場合は、段階的に手動でキャッシュを構築します。このとき、ユーザーが利用する可能性の最も高い対象地域を最大の縮尺でキャッシュします。キャッシュが小さい場合は、公開時にキャッシュ全体を自動的に構築する方が簡単です。
- 公開時に自動的にキャッシュを作成することを選択している場合は、左側のメニューの [高度な設定] をクリックして、[キャッシュの対象地域] を選択します。
キャッシュするジオグラフィの形状が長方形ではない場合は、[フィーチャクラスからインポート] を選択して、対象のジオグラフィを含むシンプル フィーチャクラスを参照することをお勧めします。このフィーチャクラスの作成に関するガイドラインについては、「フィーチャの境界に基づいたマップ キャッシュ」をご参照ください。
- 必要に応じて [高度な設定] タブで他のプロパティを調整します。これらの設定の詳細については、「使用可能なマップ キャッシュ プロパティ」をご参照ください。
- [統計情報の更新] をクリックします。マップ ドキュメントをサーバーに公開できるかどうかが検証されます。
ヒント:
マップ サービスを構成する際に表示領域を広くするには、[サービス エディター] の上部にある [折りたたみ] ボタンをクリックします。
- [準備] ウィンドウで [エラー] を修正します。エラーの修正は、マップをサービスとして公開する前に行う必要があります。さらに必要であれば、警告メッセージと情報メッセージに従って問題を修正し、サービスのパフォーマンスと外観を改善します。これらの問題の解決方法の詳細については、「GIS リソースの分析」をご参照ください。
注意:
サーバーが確実にデータを認識して使用できるように、フォルダーとジオデータベースを ArcGIS Server サイトに登録することができます。以下の手順を続ける場合、未登録のフォルダーまたはジオデータベースからマップ ドキュメントが参照するデータはすべて、公開時にサーバーにコピーされます。これは、サーバーがサービスで使用されているすべてのデータにアクセスできることを保証するための予防的な処置です。フォルダーまたはジオデータベースを ArcGIS Server サイトに登録する手順の詳細は、「ArcGIS Desktop を使用したデータの ArcGIS Server への登録」をご参照ください。
- 必要に応じて、[サービス エディター] で [プレビュー] をクリックします。Web 上でマップがどのように表示されるかを確認することができます。詳細については、「マップのプレビュー」をご参照ください。
- 新規のサービスを作成している場合は、公開の準備が整った時点で [公開] をクリックします。既存のサービスを編集している場合は、[OK] をクリックして変更内容を保存します。
キャッシュの自動構築を選択した場合は、この時点で構築が開始されます。ArcMap のジオプロセシングの [結果] ウィンドウで進行状況を確認できます。キャッシュは非同期で作成されます。つまり、キャッシュの発生中に ArcMap を閉じることができます。
- キャッシュの手動構築を選択した場合は、[カタログ] ウィンドウで該当するサービスを右クリックし、[キャッシュの管理] > [タイルの管理] の順にクリックします。これにより [マップ サービス キャッシュのタイルを管理 (Manage Map Server Cache Tiles)] ツールが表示されます。このツールは、選択した縮尺と対象地域を使用して実行できます。非同期キャッシュを実行するには、[マップ サービス キャッシュのタイルを管理 (Manage Map Server Cache Tiles)] ツールの [ジョブの完了を待機] パラメーターをオフにします。
キャッシュのテスト
キャッシュが完成したら、Web アプリケーションでキャッシュをテストし、マップの表示および機能が正常であることを確認します。これは、タイルがアプリケーションによって認識され、正しく使用されることを確認する効果的な方法でもあります。
テストに使用する Web アプリケーションは単純なものでかまいません。マップ キャッシュのテストには、ArcGIS Server Services Directory を通して利用できる JavaScript ビューアー アプリケーションを使用する方法が適しています。
- Web ブラウザーで Services Directory に移動します。URL の形式は http://gisserver.domain.com:6080/arcgis/rest/services になります。
- サービス リストで、マップ サービスをクリックします。マップ サービスには「(MapServer)」が付加されます。サービスがフォルダーに存在する場合は、そのフォルダーに移動してサービスを検索します。
- サービスの名前、サービスの説明、およびレイヤーのリストを示すページが表示されます。[View In: ArcGIS JavaScript] をクリックします。ウィンドウにシンプルな JavaScript Web アプリケーションが表示されます。
- マップ上で画面移動を行い、別のレベルにズームします。マップを画面移動したりズームしたりすると、マップ タイルが非常にすばやく表示されることがわかります。
トラブルシューティング
アプリケーションがキャッシュを使用していないと思われる場合は、ArcGIS Server アカウントにサーバー キャッシュ ディレクトリの読み書き権限が付与されていることを確認します。
Mozilla Firefox を使って Web アプリケーションを表示する場合は、キャッシュ タイルが使用されているかどうかを簡単に確認できます。
- Web アプリケーション内を右クリックして、[ページの情報を表示] を選択します。
- [ページ情報] ウィンドウで、[メディア] ボタンをクリックします。
- リストに表示されたイメージを確認します。サーバーのキャッシュ ディレクトリを参照する URL が表示されている場合は、キャッシュが使用されています。