Skip To Content

キャッシュに関する一般的な質問

以下は、マップ キャッシュについてよく寄せられる質問です。 テーマは、基本的なものから高度なものまでさまざまです。 多くの場合、質問の答えはヘルプの別の場所にある情報に基づいています。ただし、このトピックでは、ヘルプを検索するよりも特定の質問に対する答えがすばやく見つかるかもしれません。

キャッシュ全般の質問

マップ キャッシュの質問

キャッシュ全般の質問

キャッシュ ツールがサービスを再起動するのはなぜですか

[マップ サービス キャッシュのタイルを管理 (Manage Map Server Cache Tiles)] やその他のキャッシュ ツールは、ツールを実行する前後にサービスの再起動が必要となるさまざまな処理を内部で行っています。 キャッシュ ツールが conf.xml タイル スキーマ ファイルを変更する場合は、マップ サービスに変更を反映させるためにサービスを再起動する必要があります。 たとえば [マップ サービス キャッシュの縮尺を管理 (Manage Map Server Cache Scales)] を使ってキャッシュの縮尺を追加または削除する場合、タイル スキーマへの変更をマップ サービスに認識させるためには、サービスを再起動する必要があります。

サービスを再起動している間、サービスは一時的に利用できなくなります。

ArcGIS Online/Bing Maps/Google Maps のタイル スキーマに縮尺を追加するにはどうすればよいですか?

高解像度のデータを使用しているときに、ArcGIS Online/Bing Maps/Google Maps の縮尺に加えて、これより大きいまたは小さい独自の縮尺セットでキャッシュを構築する場合は、次のワークフローに従います。

  1. ArcMap の [サービス エディター] ウィンドウでキャッシュを定義するときに、[タイル スキーマ] ドロップダウン リストを使用して [タイル スキーマ ファイル] を選択します。
  2. <ArcGIS for Desktop installation location>\TilingSchemes\ArcGIS_Online_Bing_Maps_Google_Maps.xml を参照します。
  3. [サービス エディター] ウィンドウで [高度な設定] をクリックします。
  4. 追加する縮尺を入力して [追加] をクリックします。この手順を繰り返して、必要な縮尺をすべて追加します。
  5. 続いて、サービスを公開してタイルを構築します。

別の方法として、既存のキャッシュを使用する場合は、[マップ サービス キャッシュの縮尺を管理 (Manage Map Server Cache Scales)] ツールを実行します。

複数の ArcGIS Server サイト間でキャッシュ ディレクトリを共有できますか?

はい。 開発サイトと本番サイトのように複数の ArcGIS Server サイトがある場合は、それらのサイト間でキャッシュ ディレクトリを共有できます。 これにより、あるサイトから別のサイトにキャッシュをコピーまたはレプリケートする必要がなくなります。 また、複数のサイトから 1 つのキャッシュ ディレクトリに対して読み取りおよび書き込みを行うこともできます。

複数のサイト間でアクセスできるようにキャッシュ ディレクトリを設定する場合は、ネットワーク上でキャッシュ ディレクトリを共有し、各サイトの ArcGIS Server アカウントにキャッシュ ディレクトリへのアクセス権を付与する必要があります。 このアカウントは、キャッシュからのタイルの読み取り、および必要に応じてキャッシュへのタイルの書き込みに使用されます。 ArcGIS Server アカウントの詳細については、「ArcGIS Server アカウント」をご参照ください。

ArcGIS Server アカウントには、必要なレベルの権限だけを付与する必要があります。 たとえば、キャッシュ ディレクトリを共有しているサイトが、キャッシュからのタイルの読み取りだけを必要とする場合は、そのアカウントに読み取り権限だけを付与する必要があります。 これに対し、各サイトからキャッシュ タイルを作成する場合は、各サイトの ArcGIS Server アカウントに読み取りと書き込みのアクセス権を付与する必要があります。

注意:

複数のサイトから同じキャッシュ ディレクトリにキャッシュ タイルを作成する場合は、既存のキャッシュが別のサイトによって上書きされる可能性があるため、細心の注意を払う必要があります。 たとえば、同じ名前の 2 つのマップ サービスが別のサイトにある場合、キャッシュ ジョブが誤ってサイト B のマップ サービスに対して開始されると、サイト A のマップ サービスの既存のキャッシュを上書きする可能性があります。

キャッシュ ディレクトリを共有した後、その共有ネットワーク ロケーションを参照するように各サイトを更新する必要があります。 詳細については、「ArcGIS Server Manager でのサーバー ディレクトリの編集」をご参照ください。

サービスを削除すると、キャッシュも削除されますか?

いいえ。 キャッシュのタイル、タイル スキーマ、およびフォルダー構造はディスク上に保持されます。 キャッシュを完全に削除する場合は、[マップ サービス キャッシュの削除 (Delete Map Server Cache)] ツールを使用します。 タイルだけを削除してキャッシュのフォルダー構造とタイル スキーマを残す場合は、[マップ サービス キャッシュのタイルを管理 (Manage Map Server Cache Tiles)] ツールを、[更新方法][Delete_Tiles] に設定して使用します。

マップ キャッシュの質問

ある縮尺で完全データ キャッシュを生成し、別の縮尺で部分データ キャッシュを生成するにはどうすればよいですか

大きな縮尺では、多くの場合、最も需要が高いと思われるタイルをあらかじめ作成しておき、残りのタイルをオンデマンドで作成するのが効果的です。 これに対し、小さな縮尺はそれほど多くのタイルを必要とせず、クライアントが最初にマップを開いたときに表示されることが多いため、小さな縮尺では完全データ キャッシュを作成するとよいでしょう。

マップの部分データ キャッシュをいくつかの縮尺レベルで構築し、他のレベルで完全データ キャッシュを作成するには、[マップ サービス キャッシュのタイルを管理 (Manage Map Server Cache Tiles)] ツールを複数回にわたって実行します。

たとえば、次の縮尺でキャッシュしたいマップがあるとします。

  • 1:128,000
  • 1:64,000
  • 1:32,000
  • 1:16,000
  • 1:8,000
  • 1:4,000

[マップ サービス キャッシュのタイルを管理 (Manage Map Server Cache Tiles)] を実行し、1:128000、1:64000、1:32000 のみをオンにします。 デフォルトでは、これらの縮尺の全体表示が作成されます。

もう一度ツールを実行し、1:16000、1:8000、1:4000 のみをオンにします。 また、マップ範囲全体をキャッシュせずに、フィーチャ内のフィーチャクラスの範囲 (例: 都市や郡の境界) に基づいて縮尺レベルを適宜にキャッシュできます。 これにより、部分データ キャッシュが 3 つの縮尺レベルで作成されます。 必要に応じて、それらの縮尺で残りのタイルをオンデマンドで作成することもできます。

空のキャッシュ エリアに対して「データは利用不能」タイルを表示するにはどうすればよいですか?

キャッシュに存在しないエリアがある場合は、タイルをオンデマンドで作成するか、Web サーバーが「データは利用不能」タイルを返すように設定することができます。 「データは利用不能」タイルは、ユーザーがマップの端に画面移動した場合、または完全なデータ キャッシュがないエリアを参照した場合にも役立ちます。 サーバーから「データは利用不能」タイルが返されるように設定すれば、何も返さない場合よりもユーザーの操作環境が改善されることがあります。

REST ベースのアプリケーション (たとえば ArcGIS API for JavaScript で構築したもの) では、キャッシュのルート レベルに空のタイル (missing.png、missing.jpg、または blank.png) を配置して、「データは利用不能」タイルを構成します。 キャッシュ内にタイルが見つからない場合、サーバーはデフォルトでこのタイルを使用します。 手順は次のとおりです。

  1. タイル スキーマのタイルと同じディメンションおよび画像形式の画像を作成します。 この画像に missing.png または missing.jpg という名前を付けます。 透明な空のタイルが必要な場合 (たとえば、透過表示の必要なオーバーレイ サービスでは)、代わりに blank.png を使用してください。 サンプル タイルをダウンロードする手順については、以下の Esri 技術情報記事をご参照ください。
  2. マップ サービス用 _alllayers フォルダーの下に、missing.png、missing.jpg、または blank.png ファイルを保存します (例: C:\arcgisserver\arcgiscache\MyMapService\Layers\_alllayers\missing.png)。

サーバーは予期されるタイルを補充して、欠落したタイルを自動的に処理します。ただし、欠落タイルでもキャッシュのルート レベルにある特殊な欠落または空白タイルを含んだものは処理対象外です。

キャッシュ内でラベルの重複を避けるにはどうすればよいか?

マップ ドキュメントでのラベルの配置に (アノテーションではなく) 動的ラベリング エンジンを使用している場合は、キャッシュ タイルのラベルが重複することがあります。 このような重複は、どの方向にも 4,096 ピクセルを超える頻度で発生しないようにする必要があります。 すべての重複ラベルはアノテーションを使って削除することができます。 アノテーションを使用すると、ラベルがマップ上の 1 つのポイントに関連付けられるため、重複は発生しなくなります。

対象エリアに基づいてキャッシュを作成しているときに、対象エリアの外側に余分なタイルが作成されるのはなぜですか

タイルの重複ラベルを避けるために、キャッシュ ツールは最初に 4,096 x 4,096 ピクセルのエリア (デフォルトの 256 x 256 ピクセル タイル サイズのタイルが 256 個) を描画し、その後、タイル スキーマで指定されたサイズのタイルに分割します。 対象エリアの場所と形状、そしてタイル スキーマによっては、4,096 x 4,096 エリア内の一部のタイルが対象エリアの境界から出てしまう場合があります。 これは想定内の振舞いです。 対象エリアの境界からすべての方向に 4,096 ピクセルを超えるエリアには、タイルは作成されません。

タイルをオンデマンドで作成しているときに、ユーザーのマップ範囲の外側に余分なタイルが作成されるのはなぜですか

(オンデマンドで、またはキャッシュ ツールを使って) 新しいタイルをリクエストすると、タイルは常にグループで作成されます。 キャッシュ メカニズムがタイルを 1 つずつ作成することは決してありません。 そのような場合、サーバーは隣接タイルのラベルを認識しないため、重複したラベルだらけになってしまいます。

オンデマンド キャッシュを有効にした状態でキャッシュされていないエリアに画面移動すると、4,096 x 4,096 ピクセルのエリアがサーバーによって描画され、タイルに分割されます (アンチエイリアスを使用している場合、このエリアは 2,048 x 2,048 になります)。 したがって、タイルの寸法が 256 x 256 ピクセルの場合、最大で 256 個のタイルが作成されます。 このため、マップに含まれているレイヤーの数が多い場合、または複雑なシンボルが含まれている場合、クライアントが長時間待機する可能性があります。

このような理由から、マップ内でアクセス頻度の高いエリアのタイルをあらかじめ作成しておき、アクセス頻度の低いエリアにのみオンデマンド キャッシュを使用することを強くお勧めします。 複雑なソース マップ ドキュメントがある場合は、キャッシュ全体をオンデマンドで構築することは避けてください。