キャッシュに関する一般的な質問
以下は、マップ キャッシュとグローブ キャッシュについてよく寄せられる質問です。テーマは、基本的なものから高度なものまでさまざまです。多くの場合、質問への答えはヘルプの別の場所にある情報に基づいています。ただし、このトピックでは、ヘルプを検索するよりも特定の質問に対する答えがすばやく見つかるかもしれません。
キャッシュ全般の質問
マップ キャッシュの質問
グローブ キャッシュの質問
キャッシュ ツールがサービスを再起動するのはなぜですか
[マップ サービス キャッシュのタイルを管理(Manage Map Server Cache Tiles)] やその他のキャッシュ ツールは、ツールを実行する前後にサービスの再起動が必要となるさまざまな処理を内部で行っています。キャッシュ ツールが conf.xml タイル スキーマ ファイルを変更する場合は、マップ サービスに変更を反映させるためにサービスを再起動する必要があります。たとえば [マップ サービス キャッシュの縮尺を管理(Manage Map Server Cache Scales)] を使ってキャッシュの縮尺を追加または削除する場合、タイル スキーマへの変更をマップ サービスに認識させるためには、サービスを再起動する必要があります。
サービスを再起動している間、サービスは一時的に利用できなくなります。
[マップ サービス キャッシュのタイルを管理(Manage Map Server Cache Tiles)] などのキャッシュ ツールでは、なぜ CachingTools サービスに指定したすべてのインスタンスが表示されないのですか?
キャッシュ ジョブごとに、CachingTools サービスの 1 つのインスタンスがコントローラとして機能し、作業を他のインスタンスに分配する必要があります。[マップ サービス キャッシュのタイルを管理(Manage Map Server Cache Tiles)] などのキャッシュ ツールが、ジョブで使用できるインスタンスのデフォルトの最大数を表示するときには、CachingTools の利用可能な合計インスタンス数からこのコントローラ インスタンスの 1 を引きます。
そのため、クラスタで GIS サーバ コンピュータ当たり CachingTools の 2 つのインスタンスを実行でき、クラスタ内に 3 つの GIS サーバ コンピュータがある場合は、合計 3 * 2 = 6 のインスタンスが利用可能であり、キャッシュ ツールは任意のジョブで使用できるデフォルトの最大インスタンス数として 5 を表示します。
「キャッシュを作成するためのサーバ リソースの割り当て」もご参照ください。
ある縮尺で完全データ キャッシュを生成し、別の縮尺で部分データ キャッシュを生成するにはどうすればよいですか
大きな縮尺では、多くの場合、最も需要が高いと思われるタイルをあらかじめ作成しておき、残りのタイルをオンデマンドで作成するのが効果的です。これに対し、小さな縮尺はそれほど多くのタイルを必要とせず、クライアントが最初にマップを開いたときに表示されることが多いため、小さな縮尺では完全データ キャッシュを作成するとよいでしょう。
マップの部分データ キャッシュをいくつかの縮尺レベルで構築し、他のレベルで完全データ キャッシュを作成するには、[マップ サービス キャッシュのタイルを管理(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 ベースのアプリケーション(たとえば JavaScript、Flex、または Silverlight 対応の ArcGIS API で構築したもの)では、キャッシュのルート レベルに空のタイル missing.png、missing.jpg、または blank.png を配置して、「データは利用不能」タイルを構成します。キャッシュ内にタイルが見つからない場合、サーバはデフォルトでこのタイルを使用します。手順は次のとおりです。
- タイル スキーマのタイルと同じディメンションおよび画像形式の画像を作成します。この画像に missing.png または missing.jpg という名前を付けます。透明な空のタイルが必要な場合(たとえば、透過表示の必要なオーバーレイ サービスでは)、かわりに blank.png を使用してください。サンプル タイルをダウンロードする手順については、Esri Knowledge Base の記事 36939 をご参照ください。
- missing.png、missing.jpg、または blank.png ファイルを、マップ サービスの _alllayers フォルダに保存します(たとえば、opt/arcgis/server/usr/directories/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 ピクセルのエリアがサーバによって描画され、タイルに分割されます(アンチエイリアスを使用している場合、このエリアは 2048 x 2048 になります)。したがって、タイルの寸法が 256 x 256 ピクセルの場合、最大で 256 個のタイルが作成されます。このため、マップに含まれているレイヤの数が多い場合、または複雑なシンボルが含まれている場合、クライアントが長時間待機する可能性があります。
このような理由から、マップ内でアクセス頻度の高いエリアのタイルをあらかじめ作成しておき、アクセス頻度の低いエリアにのみオンデマンド キャッシュを使用することを強くお勧めします。複雑なソース マップ ドキュメントがある場合は、キャッシュ全体をオンデマンドで構築することは避けてください。
グローブ サービスにはどのようなタイル スキーマを使用すべきですか
マップ サービスと異なり、すべてのグローブ サービスは同じタイル スキーマを使用するため、グローブ サービスのタイル スキーマに設定する必要はありません。データは組み込みグローブ タイル スキーマのレベルで自動的にキャッシュされます。
よく見てみると、これらのラベルが ArcGlobe または ArcGIS Explorer に反映されていることがわかります。グローブを拡大するとさまざまな高度を通過するため、ピクチャが少しくっきり見えたり、ぼやけて見えたりします。
ArcGIS Online、Bing Maps、または Google マップ タイル スキーマの縮尺は、ArcGlobe の組み込み縮尺レベルとほぼ一致します。グローブのサーフェス上に 2D マップ サービスをドレープする予定がある場合は通常、このタイル スキーマを選択することをお勧めします。このタイル スキーマを使うのは、体裁上の理由からではなく、ArcGlobe がこのタイル スキーマを介して 2D サービスを高速に描画できるようにエンジニアリングされているためです。