マップ キャッシュのヒントとベスト プラクティス
次のヒントは、マップ キャッシュの外観とパフォーマンスを最適化するのに役立ちます。これらのヒントは以下のカテゴリに分類されています。
マップ ドキュメントの準備
可能であれば、マップを設計する前にキャッシュする縮尺を選択します。ArcMap でマップを作成する際には、これらの縮尺で作業を行います。これらの縮尺を ArcMap の [縮尺] ドロップダウン リストに手動で読み込むと、すぐに確認できるようになります。
マップをキャッシュする前に、キャッシュする予定の縮尺ごとにソース マップ ドキュメントの表示を実際に確認してください。縮尺ごとに、適切なレイヤに効果的なシンボルとラベルが表示されることを確認します。縮尺に基づいてレイヤのシンボル表示を変更する必要がある場合は、ArcMap のコンテンツ ウィンドウ内でレイヤをコピーして貼り付けます。レイヤのコピーごとに縮尺範囲を設定し、その縮尺範囲に合わせて適切なシンボルを設定します。
以下の図では、ArcMap ドキュメントに 2 つの縮尺で表示するためのシンボルが設定されています。このマップの作成者は、Interstates レイヤと Cities レイヤをコピーしてデータ フレームに貼り付け、レイヤごとに [Zoomed in] と [Zoomed out] に異なるシンボルを設定しています。
縮小したマップでは、人口が 5 万人以上の都市だけが表示されるようにフィルタが設定されています。また、Interstates レイヤのシンボルは細い線で表示されます。
拡大したマップでは、フィルタが削除され、すべての都市が表示されるように設定されています。ただし、大都市を大きなフォントでシンボル表示するためのラベル ルールが追加されています。また、Interstate シンボルが変更され、太いカートグラフィック ライン シンボルが設定されています。
[Zoomed in] レイヤと [Zoomed out] レイヤの両方で縮尺範囲が設定され、縮尺ごとにレイヤが 1 つだけ表示されるようになっています。Rivers and Lakes、County Boundaries、Parks、State Background レイヤは、拡大表示でも縮小表示でも同じシンボルを使用するため、これらのレイヤのコピーは作成されていません。
キャッシュするマップを多くの縮尺で作成する場合は、このプロセスを繰り返す必要があり、マップ ドキュメント内にレイヤのコピーが多数作成される可能性があります。グループ レイヤを使ってそれらを整理してください。
テキスト シンボルで X オフセットと Y オフセットを 0 に設定します。テキスト シンボル オフセットを使用すると、誤ってラベルが切詰められる可能性があります。ラベル エンジンのオフセット機能を使用してください。
データ フレームの背景色として、マップ内の別の場所で使用されていない色を明示的に定義します(RGB 254,255,255 を選択すると効果的です)。定義しない場合は、背景色と同じ色のシンボルやテキストが透明として表示されることがあります。
ArcMap では、背景色を明示的に設定することができます。PNG 24 および PNG 32 の透過表示をサポートする環境では、背景は透明として表示されます。
大規模なキャッシュ ジョブを開始する前に、すべての縮尺レベルで狭いエリアのテスト キャッシュを作成します。この作成を行うには、まずテスト領域をカバーする小さなフィーチャクラスを作成します。次に、キャッシュを作成する際に、対象地域に基づいてタイルを作成するオプションを選択します。この小さいエリアのキャッシュを作成したら、タイルの表示とパフォーマンスが想定どおりであることを確認します。この確認を行うには、[Services Directory] を使用してサービスをプレビューするのも 1 つの方法です。
キャッシュの作成
-
データを適切に視覚化するために十分な数の縮尺を作成していることを確認します。ArcMap ユーザがキャッシュされた縮尺の中間の縮尺を選択した場合は、リサンプリングされたキャッシュ タイルが表示されます。キャッシュする縮尺の数が少なすぎると、多くのリサンプリングが必要になるため、フィーチャが歪んでしまう可能性があります。同時に、必要のない大きな縮尺は避けて、タイルの作成で時間を浪費しないようにします。
組織内で作成されるすべてのキャッシュに同じタイル スキーマを使用するようにしてください。別の組織または部署のキャッシュ サービスを Web アプリケーションに統合する場合は、それらのタイル スキーマを一致させるか、共有できるタイル スキーマを作成する必要があります。一般的なタイル スキーマとしては、ArcGIS Online、Google マップ、Bing Maps などが有名です。
Web アプリケーションで互いにオーバーレイするキャッシュを作成する場合は、可能であれば同じタイル スキーマを使用してください。完全に同じ縮尺レベルですべてのキャッシュを作成する必要はありません。ただし、できるだけ多くの縮尺で一致している必要があります。
以下の図では、縮尺範囲の異なる 3 つのキャッシュが、可能な場合に同じ縮尺を共有しています。赤の線で囲まれているのが共有キャッシュです。
タイトルの作成を始める前に、ArcGIS Server のログ レベルが [重大] または [警告] に設定されていることを確認してください。これらのレベルでは、問題やエラーのみが報告されます。キャッシングにより、描画リクエストが高速で繰り返し送信されるため、リクエストごとに詳細情報がログに記録されるのを回避します。
キャッシュ タイルを作成する際には、[対象地域] オプションを使用して、必要のない領域のキャッシュを作成しないようにします。事前に作成しておきたいエリアのアウトラインを明確に定義する新しいフィーチャクラスを作成すると効果的かもしれません。キャッシュを作成または更新するたびに、このフィーチャクラスを対象地域として使用することができます。
オンデマンド キャッシュを使ってキャッシュ全体を構築することは避けてください。アクセス頻度が高いことが予想されるエリアではタイルを事前に作成しておき、アクセス頻度が低いエリアでのみオンデマンド キャッシュを使用すると効果的です。
パフォーマンスを向上するには、共有ネットワーク ドライブまたはエンタープライズ ジオデータベース上でホストされるデータの代わりにローカル データを使用することを検討してください。各 GIS サーバ上に同じファイル ジオデータベースを配置することは、多くの場合、キャッシュ データにアクセスする最も高速な方法です。サイトにとってこれが最適な方法かどうかについては、「ArcGIS Server サイトでのデータ格納の検討事項」をご参照ください。
ArcSOC.exe プロセスで表示されるサービス インスタンスが活用されていない(アイドル状態にある)か、活用されすぎている(すべての CPU リソースを占有している)かを判断する、System/CachingTools サービスのインスタンスの最小数と最大数を設定します。このトピックの詳細については、「キャッシュを作成するためのサーバ リソースの割り当て」をご参照ください。
[マップ サービス キャッシュのタイルを管理(Manage Map Server Cache Tiles)] を実行し終えたら、ジオプロセシング ツールのメッセージを確認します。タイル作成中にサービス インスタンスがクラッシュした場合は、欠落領域の縮尺と範囲がジオプロセシング ツールのメッセージに書き込まれます。後でその範囲のキャッシュを作成し直して、タイルの欠落を補充できます。
キャッシュの管理
ソース データが変化する可能性が高い場合は、Python スクリプトを使用して、[マップ サービス キャッシュのタイルを管理(Manage Map Server Cache Tiles)] ジオプロセシング ツールを定期的に自動実行することができます。このツールにより、キャッシュのすべての領域、または選択された領域を更新することができます。詳細については、「ジオプロセシングによるキャッシュの作成と更新の自動化」をご参照ください。
キャッシュが作成された後、すべてのソース データを引き続きサーバに格納したくない場合は、ソース マップ ドキュメントからレイヤの一部を削除することができます。マップ ドキュメントにはレイヤを最低でも 1 つ残しておき(マップ範囲をカバーするフィーチャが 1 つ含まれた単純なフィーチャクラスを残しておくことをお勧めします)、マップ ドキュメントの座標系はキャッシュの作成に使用したもののままにしておきます。サービスを再起動した後は、削除したレイヤのソース データをサーバから削除しても安全です。サービス名とキャッシュ名が同じままである限り、ユーザはサービスを表示するときに引き続きキャッシュを参照します。
この手法を使用する場合、ユーザがサービスを検索したときに特定の結果が返されないことに注意してください。検索可能なレイヤをいくつか維持したい場合は、それらをマップ ドキュメントに残しておき、それらのレイヤのソース データをサーバに残しておく必要があります。