マップ キャッシュのヒントとベスト プラクティス
次のヒントは、マップ キャッシュの外観とパフォーマンスを最適化するのに役立ちます。これらのヒントは以下のカテゴリに分類されています。
マップ ドキュメントの準備
- データ フレーム名にスペースやアルファベット以外の文字を使用することはできません。データ フレーム名が URL に含まれている場合、スペースや特殊文字を正しく解釈できない Web サーバがあるかもしれません。
- 可能であれば、マップを設計する前にキャッシュする縮尺を選択します。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 レイヤは、拡大表示でも縮小表示でも同じシンボルを使用するため、これらのレイヤのコピーは作成されていません。
キャッシュするマップを多くの縮尺で作成する場合は、このプロセスを繰り返す必要があり、マップ ドキュメント内にレイヤのコピーが多数作成される可能性があります。グループ レイヤを使ってそれらを整理してください。
- マップ ドキュメントで Maplex ラベリング エンジンを使用します。これにより、キャッシュ時にラベルを最適な位置に配置できるようになります。
- テキスト シンボルで X オフセットと Y オフセットを 0 に設定します。テキスト シンボル オフセットを使用すると、誤ってラベルが切詰められる可能性があります。ラベル エンジンのオフセット機能を使用してください。
- データ フレームの背景色として、マップ内の別の場所で使用されていない色を明示的に定義します(RGB 254,255,255 を選択すると効果的です)。そうしないと、ブラウザによってはその背景色が透明であると解釈されてしまい、偶然に同じ背景色を使用しているフォントやラインなどが正しくレンダリングされないことがあります。
ArcMap では、背景色を明示的に設定することができます。PNG 24 の透過表示をサポートする環境では、背景は透明としてレンダリングされます。
- 大規模なキャッシュ ジョブを開始する前に、すべての縮尺レベルで狭いエリアのテスト キャッシュを作成します。この作成を行うには、まずテスト領域をカバーする小さなフィーチャクラスを作成します。次に、キャッシュを作成する際に、そのフィーチャクラスの境界に基づいてタイルを作成するオプションを選択します。この小さいエリアのキャッシュを作成したら、タイルの表示とパフォーマンスが想定どおりであることを確認します。この確認を行うには、[Services Directory] を使用してサービスをプレビューするのも 1 つの方法です。
キャッシュの作成
- 可能であれば、融合キャッシュまたは融合キャッシュの組み合わせを使用してください。マルチレイヤ キャッシュを使用する場合は、クライアント アプリケーションとして ArcMap が推奨されます。
- 十分な数の縮尺を作成してください。Web アプリケーションのユーザは、キャッシュされた縮尺でしかマップを表示できないからです。
ArcMap ユーザがキャッシュされた縮尺の中間の縮尺を選択した場合は、リサンプリングされたキャッシュ タイルが表示されます。キャッシュする縮尺の数が少なすぎると、多くのリサンプリングが必要になるため、フィーチャが歪んでしまう可能性があります。
- 最大の縮尺レベルを慎重に選択してください。最大縮尺は、キャッシュに最も時間がかかり、ディスク領域を最も使用する縮尺です。この縮尺では、それ以上拡大する必要がないところまで拡大されている必要があります。
- 組織内で作成されるすべてのキャッシュに同じタイル スキーマを使用するようにしてください。別の組織または部署のキャッシュ サービスを Web アプリケーションに統合する場合は、それらのタイル スキーマを一致させるか、両者が共有できるタイル スキーマを作成する必要があります。
- Web アプリケーションで互いにオーバーレイするキャッシュを作成する場合は、できれば同じタイル スキーマを使用してください。完全に同じ縮尺レベルですべてのキャッシュを作成する必要はありません。ただし、できるだけ多くの縮尺で一致している必要があります。
以下の図では、縮尺範囲の異なる 3 つのキャッシュが、可能な場合に同じ縮尺を共有しています。赤の線で囲まれているのが共有キャッシュです。
- キャッシュ タイルを作成する際には、[フィーチャクラスを使用して特定のエリアを更新] オプションを使用して、必要のないエリアのキャッシュを作成しないようにします。事前に作成しておきたいエリアのアウトラインを明確に定義する新しいフィーチャクラスを作成すると効果的かもしれません。キャッシュを作成または更新するたびに、このフィーチャクラスを使用することができます。
- オンデマンド キャッシュを使ってキャッシュ全体を構築することは避けてください。アクセス頻度が高いことが予想されるエリアではタイルを事前に作成しておき、アクセス頻度が低いエリアでのみオンデマンド キャッシュを使用すると効果的です。
- [マップ サービス キャッシュのタイルを管理(Manage Map Server Cache Tiles)] を実行し終えたら、ジオプロセシング ツールのメッセージを確認します。タイル作成中に ArcSOC.exe プロセスがクラッシュした場合、欠落領域の縮尺と範囲がジオプロセシング ツールのメッセージに書き込まれます。その後、その特定の範囲に対してキャッシュを再作成して、タイルの欠落を補充できます。
イメージ形式
キャッシュを構築する際にはタイル スキーマを一致させる必要がありますが、イメージ形式を一致させる必要はありません。タイル スキーマ ファイルをインポートした後、キャッシュを作成する前にイメージ形式を変更することができます。以下のガイドラインに従って、個々のキャッシュに適したイメージタイプを選択してください。
- 画像などカラー バリエーション豊かなラスタベースのベースマップには、JPEG 形式を使用します。
- 道路地図などのベクタベースのベースマップには、JPEG または PNG 形式を使用します。単純な色を少しだけ使用しているマップには、PNG 形式を使用します。
- 境界線、道路ネットワーク、または透過表示を必要とするフィーチャといったオーバーレイ サービスには、PNG 形式を使用します。
- 257 色以上をマップに使用している場合は、PNG 8 形式を使用しないようにしてください。
- Internet Explorer 6 でタイルを表示する場合は、PNG 24 形式を使用しないようにしてください。
キャッシュの管理
- ソース データが変化する可能性が高い場合は、Python スクリプトを使用して、[マップ サービス キャッシュのタイルを管理(Manage Map Server Cache Tiles)] ジオプロセシング ツールを定期的に自動実行することができます。このツールにより、キャッシュのすべての領域、または選択された領域を更新することができます。詳細については、「ジオプロセシングによるキャッシュの作成と更新の自動化」をご参照ください。
- 非常に大きなキャッシュがあり、GIS サーバ ポスト インストールを実行する必要がある場合、ポスト インストールの過程でキャッシュ内のすべてのファイルに必要な権限を適用するのに時間がかかることがあります。これに対処する方法については、「Esri Knowledge Base 32766」をご参照ください。サービス パックの適用は、GIS サーバ ポスト インストールのセットアップを実行する必要がある状況の一例です。
- キャッシュが作成された後、すべてのソース データを引き続きサーバに格納したくない場合は、ソース マップ ドキュメントからレイヤの一部を削除することができます。マップ ドキュメントにはレイヤを最低でも 1 つ残しておき(マップ範囲をカバーするフィーチャが 1 つ含まれた単純なフィーチャクラスを残しておくことをお勧めします)、マップ ドキュメントの座標系はキャッシュの作成に使用したもののままにしておきます。サービスを再起動した後は、削除したレイヤのソース データをサーバから削除しても安全です。サービス名とキャッシュ名が同じままである限り、ユーザはサービスを表示するときに引き続きキャッシュを参照します。
この手法を使用する場合、ユーザがサービスを検索したときに特定の結果が返されないことに注意してください。検索可能なレイヤをいくつか維持したい場合は、それらをマップ ドキュメントに残しておき、それらのレイヤのソース データをサーバに残しておく必要があります。