フィーチャの境界に基づくマップ キャッシュ
このトピックの内容
ArcGIS では、タイル作成の空間をフィーチャクラスの境界に制限することができます。次の 2 つの場所にこのフィーチャクラスを指定できます。
- サービスを公開するとき、または初めてキャッシュを初期化するときに、[サービス エディター] の [キャッシュ] → [高度な設定] タブで、[キャッシュの対象地域] パラメーターを設定します。ドロップダウン リストから [フィーチャクラスからインポート] を選択します。この対象地域は、公開時に自動的にキャッシュを作成する場合にのみ適用されます。
- [マップ サービス キャッシュのタイルを管理 (Manage Map Server Cache Tiles)] ツールを開き、[対象地域] パラメーターを設定します。この設定は、[サービス エディター] で設定した対象地域よりも優先されます。
注意:
[マップ サービス キャッシュのタイルを管理 (Manage Map Server Cache Tiles)] ツールを ArcMap で実行している場合は、画面上で対象地域をスケッチするオプションも使用できます。これは、キャッシュの既知のエリアで欠けているタイルを補修したい場合、または所定のエリアの範囲を確認したい場合に、ツールを 1 回だけ実行するときに便利です。ただし、ほとんどの体系化されたキャッシュ ジョブまたは更新では、フィーチャクラスを指定することが推奨されます。
フィーチャクラスの境界に基づくキャッシュにより、タイルを必要な場所のみで作成できるため、空のエリアまたは不要なエリアのキャッシュを回避できます。たとえば 1 つの国をキャッシュしている場合は、主要都市部のフィーチャクラスを指定することができます。そうすることで、それらの都市部をカバーするタイルだけをサーバーに事前に作成させます。残りのエリアは、クライアントによってリクエストされたときにオンデマンドでキャッシュすることができます。これにより、郊外地域のタイルの作成に費やす時間とディスク容量を節約することができます。
以下の図は、フィーチャクラスにカリフォルニア州のみが含まれている場合に作成されるタイルの理論的なグリッドを示しています。このフィーチャクラスにより、海や隣接する州内の不要なタイルを作成せずに済みます。デフォルトの長方形の範囲が使用された場合は、そうした不要なタイルが含まれることになります。
サポートされているシェープ タイプ
対象地域の定義には、ポリゴン フィーチャクラスを使用する必要があります。ポイント フィーチャクラスまたはポリライン フィーチャクラスに基づくキャッシュを構築または更新する場合は、最初に少量のフィーチャをバッファーして、ポリゴン フィーチャクラスを取得する必要があります。また、バッファーは、対象地域として使用する前にディゾルブおよびジェネラライズすることをお勧めします。
ポイントには 1 つの頂点だけが含まれています。それらは多くの場合、ダイナミック マップ サービスや (Esri Web マッピング API のような) クライアント側のグラフィックスによって高速に描画することができます。パフォーマンスをテストしたら、ポイントをキャッシュする必要はないことがわかる場合もあります。
ベスト プラクティス
ここでは、フィーチャクラスに基づいて効率的にキャッシュを作成するのに役立つヒントを紹介します。
フィーチャクラスに基づくキャッシュは大きな縮尺のみで行う
小さな縮尺では、相対的に少数のタイルが作成されるため、フィーチャクラスに基づいてキャッシュする場合としない場合の違いがあまりありません。したがって、ユーザーがマップを開いた直後 (小縮尺状態)、拡大を開始したとたんにタイルが欠落したり、オンデマンド タイル化の必要に迫られたりすることのないよう、小程度または中程度の縮尺では全体をタイル化しておきます。
ラベリングの重複を最小化するため、キャッシュ ツールは、大きなエリアの画像 (スーパータイル) を描画してから、画像を要求されたサイズのタイルに分割します。スーパータイルは、マップ サービスがアンチエイリアスを使用している場合は 2048 x 2048 ピクセルで、それ以外の場合は 4096 x 4096 ピクセルになります。フィーチャがスーパータイルの境界と交差している場合、そのスーパータイル全体が作成される必要があります。これはある程度、拡大表示しないと、フィーチャクラスに基づくキャッシュを行っても、時間とディスク容量は実質的には節約されないことを意味します。フィーチャの数が多く、マップ全域にある場合、ほとんどのフィーチャがスーパータイルと交差するため、フィーチャクラスに基づくキャッシュの効果はあまり得られない可能性があります。
フィーチャの境界をジェネラライズする
フィーチャクラスに多数の頂点があると、キャッシュ ツールの速度が遅くなることがありますが、多数の頂点を使用する必要はありません。キャッシュ ツールは正方形をはめ込んでいくため、微細なフィーチャはそぎ落とされます。フィーチャクラスにすべての島、埠頭、および入り江を含める必要はありません。
[ポリゴンの単純化 (Simplify Polygon)] ツールを使用すると、全体的な形状を変更することなくフィーチャクラスから頂点を体系的に削除できます。フィーチャクラスがモデルから派生している場合、[ポリゴンの単純化 (Simplify Polygon)] をモデルの最後のステップとして組み込むことができます。[バッファー (Buffer)] などの一部のツールは、フィーチャクラスに必要以上の数の頂点を追加することがあります。
下の画像では、詳細なフィーチャクラスを使用した場合でも、ジェネラライズされたフィーチャクラスを使用した場合でも、作成された一連のタイルが酷似しています。2 番目のフィーチャクラスからは、[ポリゴンの単純化 (Simplify Polygon)] ツールによってほとんどの頂点が削除されています。グレーの正方形は、およそ縮尺 1:4500 での 4096 x 4096 ピクセルのスーパータイルを表しています。
レガシー:
10.0 以前のバージョンでは、サービス インスタンスの使用率を高めるために、タイルの複数のバンドルが含まれるように各フィーチャを大きくすることを推奨していました。この推奨内容は、10.1 からは当てはまりません。また、10.0 以前のリリースで使用できる status tracking フィールドが 10.1 から使用されなくなりました。キャッシュの終了ステータスを表示するには、カタログ ツリーでサービスを右クリックし、[キャッシュ ステータスの表示] をクリックします。