Skip To Content

キャッシュ作成ツールと処理

このトピックでは、ArcGIS EnterpriseArcGIS Pro のマップ イメージ レイヤーとイメージ レイヤーを使用して生成されたラスター タイルのキャッシュ生成処理の詳細について説明します。

ArcGIS Pro でキャッシュされたマップ サービスとイメージ サービスの公開

キャッシュ作成を開始するには、まず ArcGIS ProArcGIS Server Manager のサービス定義を使用して、マップまたはイメージ サービスを公開する必要があります。 ArcGIS Pro では、サービス定義ファイルの公開時か作成時にキャッシュを使用するよう、サービスを構成できます。 詳細については、「ArcGIS Pro でのサービス公開」と「マップ イメージ レイヤーの構成」をご参照ください。

サービスの公開時にすぐにタイルを作成すること (小さなキャッシュ向け)、または公開後に独自にキャッシュを構築すること (大きな縮尺で構築するキャッシュの量を地理的に制限することが望まれる大きなキャッシュ向け) ができます。 キャッシュを自分で作成するには、サーバー ツールの [マップ サービス キャッシュのタイルを管理 (サーバー) (Manage Map Server Cache Tiles (Server))] ジオプロセシング ツールを使用します。

マップ サービス キャッシュ タイル スキーマの生成 (Generate Map Server Cache Tiling Scheme) ツール

[マップ サービス キャッシュ タイル スキーマの生成 (Generate Map Server Cache Tiling Scheme)] ツールでは、タイル スキーマをサービスとして公開しなくても、キャッシュの縮尺、座標系、その他のプロパティを使用して、GIS コンテンツのタイル スキーマを作成できます。 このツールは、キャッシュを作成する際に、保存されたプロパティを読み込むために使用できる XML 形式のタイル スキーマ ファイルを出力します。

マップ サービス キャッシュ スキーマの作成ツール

[マップ サービス キャッシュ スキーマの作成 (Create Map Server Cache Scheme)] ツールを使用すると、指定された ArcGIS キャッシュ ディレクトリにタイル スキーマと準備フォルダーを作成することで、ダイナミック マップまたはイメージ サービスを、キャッシュされたマップまたはイメージ サービスに変換できます。 このツールを実行できるのは、公開者と管理者のみです。

注意:

このツールは、サービスのキャッシュ タイルを作成しません。 キャッシュ タイルを使用してサービスをレンダリングするには、サービス公開者か管理者は [すべてのタイルを再作成] モードで [マップ サービス キャッシュのタイルを管理 (Manage Map Server Cache Tiles)] ツールを実行する必要があります。

キャッシュの格納形式

ラスター キャッシュは compact v2 形式で格納されます。この形式では、16,384 個のタイルがバンドル ファイルに格納されます。 個々のタイル サイズは、マップ サービス キャッシュ タイル スキーマの生成 (Generate Map Server Cache Tiling Scheme) またはマップ サービス キャッシュ スキーマの作成ジオプロセシング ツールを使用して定義されたキャッシュ タイル スキーマで定義されます。

キャッシュの作成中に、テンポラリ ファイルの .lock.done がキャッシュ ファイルに生成されます。 .lock ファイルにより、ArcGIS Server で作成中のバンドルを記録できます。 .lock ファイルが存在しても、バンドルがクライアントにアクセスできないというわけではありません。 同様に、.done ファイルを使用すると、ArcGIS Server で作成済みのバンドルを記録できます。 すべての .lock ファイルと .done ファイルは、キャッシュ ジョブが完了したら削除されます。

各レベルにバンドルを 1 つだけ含む、小さなキャッシュを作成することができます。 ただし、バンドルの境界は地理データにまたがっていることが一般的であるため、1 つのレベルに複数のバンドルが作成されます。 大きなキャッシュには多数のバンドルが含まれます。

バンドルの境界はタイル スキーマ原点によって決定され、調整することはできません。 たとえば、町内/通りレベルの縮尺である 1:4096 の場合、最大数のデータを含む 1 つのバンドルでは、米国東部にある中規模の郡を包含できます。

タイルを更新する場合、バンドル全体が再作成されることはありません。 代わりに、4096 x 4096 ピクセル (アンチエイリアスを使用しない場合) または 2048 x 2048 ピクセル (アンチエイリアスを使用する場合) のエリアが更新されます。 このエリアの単位をスーパータイルと呼ぶことがあります。

Web API を含む ArcGIS クライアントは、コンパクト キャッシュ形式で作成されたバンドル ファイルを読み取ることができます。 Web クライアントは、ArcGIS Server サイトに対して、タイルの特定のレベル、行、および列を取得するための呼び出しを発行します。 ArcGIS Server はそのリクエストを受信し、バンドルから適切なタイルを返します。

注意:

コンパクト キャッシュ形式には、10.0 で導入された compact と 10.3 で導入された compactV2 の 2 つのバージョンがあります。 compact バージョンには、インデックスとして機能する個別の .bundlex ファイルが含まれています。compactV2 バージョンでは、インデックスが .bundle ファイルに組み込まれています。 compactV2 により、キャッシュがネットワーク共有またはクラウド ストアに配置されている場合は特に、パフォーマンスが向上します。これは、バージョン 10.3 以降で動作する ArcGIS Server サイトにのみ互換しており、これらのバージョンではデフォルトとなっています。

compactV2 形式の compact キャッシュを ArcGIS Server 10.0 ~ 10.2 で動作するサイトに移動させるには、ArcGIS Pro[マップ サービス キャッシュのエクスポート (Export Map Server Cache)] ツールを使用します。

キャッシュ ディレクトリ

デフォルトでは、ArcGIS Server は、マップおよびイメージ サービスのキャッシュを、ArcGIS Server サイトを構成したときに作成されたサーバー キャッシュ ディレクトリに作成します。 ただし、キャッシュ ファイルを別の場所に格納するように構成することができます。

サイトのキャッシュ ディレクトリを構成するとき、公開者は次のいずれかのディレクトリを選択して、マップおよびイメージ サービスのキャッシュを格納します。

サーバー キャッシュ ディレクトリを開いて、キャッシュ タイルとタイル スキーマ ファイル conf.xml を調べることができます。 キャッシュ ディレクトリには、構築済みのタイルに関する情報を含む、ファイル ジオデータベースの status.gdb も格納できます。

複数のコンピューター サーバー サイトでのキャッシュ生成

ArcGIS Server サイトに、共有のキャッシュ ディレクトリにタイルを書き込もうとする複数のコンピューターがある場合、スケーラビリティが低下します。 これを防ぐため、ArcGIS Serverローカル キャッシュ ディレクトリを使用して、タイルを各 ArcGIS Server コンピューター上に一時的に書き込みます。

注意:

マップまたはイメージ サービスがホスティング サーバーに公開されると、ホスティング サーバー サイトのキャッシュ ディレクトリが使用されます。

ラベル

次のセクションでは、サーバーがマップ キャッシュ タイルを作成する際のマップ ラベルの動作について、一般的な質問に対応します。

キャッシュの重複ラベルを避ける

キャッシュ ジョブの最中に、ArcGIS は重複ラベルを減らす目的で、一度に大きな領域を描画します。 このような大きな領域 (スーパータイル) は、小さい個別のタイルに分割されます。 スーパータイルの大きさは 2048 x 2048 ピクセル (アンチエイリアスを使用する場合) または 4096 x 4096 ピクセル (アンチエイリアスを使用しない場合) です。

スーパータイル内にはラベルの重複は見られないはずですが、スーパータイルの境界で重複が発生することがあります。 これは、スーパータイルがラベル付けされたときに、ラベル配置エンジンは隣接するスーパータイルのラベルを認識しないためです。 実際、ラベリング エンジンはスーパータイル内にできるだけ多くのラベルを含めようとするため、一部のラベルがエッジ周辺に配置されることになります。 隣接するスーパータイルでも同じことが起こることがあり、スーパータイル境界周辺に重複が見られる原因になります。

キャッシュ内のラベルの重複を避けるには、アノテーションを使用する以外の方法はありません。 アノテーションとは、各ラベルを属性を持つフィーチャとして扱う特別なレイヤーです。 属性には、各ラベルに割り当てられたマップ上の場所が含まれます。 アノテーション レイヤーを編集し、重複ラベルを削除できます。

マップ キャッシュ向けのアノテーション レイヤーを作成する

アノテーション レイヤーは非常に大きくなることがあり、マップのさまざまな縮尺に対してアノテーションを作成するのは大変な作業に見えるかもしれません。 [カートグラフィ ツール] にある、アノテーション ツールセットの 2 つのツールは、マップ キャッシュのアノテーションを作成するよう設計されています。

1 つ目のツールは [マップ サービス キャッシュ タイル スキーマ → ポリゴン (Map Server Cache Tiling Scheme To Polygons)] です。 このツールは、マップ キャッシュ タイル スキーマを読み込み、タイル スキーマの各縮尺でのスーパータイルの境界を表すグリッドを作成します。 これらのグリッドは、アノテーション作成ジョブを作業しやすいように分割する際に役立ちます。

2 つ目のツールは [ラベル → タイル分割されたアノテーション (Tiled Labels To Annotation)] です。 作成したスーパータイル グリッド、マップ ドキュメント、出力ワークスペースを指定すると、ツールがキャッシュ内のすべての縮尺に対してアノテーションを作成します。 マップ ドキュメント内でラベリングが有効になっているすべてのレイヤーに対し、アノテーションが作成されます。

このツールで作成されるアノテーションで、キャッシュを作成する場合と同じラベル配置を得ることができます。 その後、レイヤーで重複ラベルの調査または検索を行い、キャッシュを構築する前に削除できます。 あるいは、競合が発生した場合、キャッシュ更新の間にアノテーション レイヤーを手動でクリーン アップできます。

上記のツールを大規模な領域で実行する前に、小規模の範囲を使用してシンプルなマップで練習することをお勧めします。 スーパータイル グリッドの作成とアノテーションの描画は時間のかかる作業なので、大規模なマップでツールを使用する場合には正しいパラメーターを指定していることを確認してください。 また、練習することにより、ツールの所要時間やアノテーションの作成数を推定することもできます。

ラベリングがタイル作成速度に与える影響

マップ ラベルの最適な位置を計算する処理は時間がかかるため、ラベル付けを行うとタイル作成にも時間がかかることがあります。 アノテーションではラベル配置を決定する必要がないため、キャッシュ作成時にラベルを最も迅速に描画できる方法です。 各ラベルには、ラベルの属性である所定の座標があります。

Maplex ラベル エンジン を使用すると、ラベル描画に最も時間がかかります。 Maplex は優れたラベル付けを行いますが、マップ キャッシュに時間がかかります。

優れたラベル配置とパフォーマンスの最適なバランスを実現するには、マップ ドキュメントで Maplex ラベル エンジン を使用してラベルを描画し、これらのラベルをアノテーションに変換してから、そのアノテーションをマップ サービスで使用することをお勧めします。

注意:

Maplex では大量のメモリが消費されます。 Maplex を使用してキャッシュ全体を構築する前に、テスト キャッシュを作成し、タイルの作成中にシステムのメモリ使用量を確認してください。 メモリ使用量がコンピューターの上限に近い場合は、Maplex を無効にすることをご検討ください。 無効にしなければ、タイルの作成時に動作が不安定になり、クラッシュの原因となることもあります。

ラベルを別のキャッシュで保持するかどうかを決定する

ベクター フィーチャと関連ラベルは、通常、同じキャッシュに含まれます。 ユーザーがラベルをオフにすることを許可する、説得力のある理由はほとんどありません。ただし、それが必要である場合は、ラベルとフィーチャを別々のキャッシュに分離するのは良い方法です。

通常、ラベルは画像のキャッシュには含まれてはなりません。 これにより、画像を単独で使用したり、他のアプリケーションで再利用したりできるようになります。 異なるラベル セットがタイルに焼き付けられた複数のイメージ キャッシュは、複数のラベル オーバーレイ キャッシュを持つ 1 つのイメージ キャッシュよりも、ディスク上のスペースを累積的に多く消費します。