グローブ キャッシュの仕組み
このトピックの内容
ArcGlobe には内部データ構成方式のデータ タイリングがあるため、膨大なデータ ソースを効果的に扱う能力があります。あとで使用するためのデータ タイルの格納をデータ キャッシュと呼びます。ArcGlobe を使用する際、データ タイルは常にメモリ キャッシュに格納され、必要に応じてディスク キャッシュに格納されます。このように格納されたデータ レイヤーのデータ タイルをレイヤー データ キャッシュと呼びます。データ キャッシュの利点には、表示パフォーマンスの改善と、反復的なデータ リクエストの削減が含まれます。
グローブ サービスは、レイヤー データ キャッシュに大きく依存します。このキャッシュは、表示に使用されるレンダリング済みのタイルで構成されます。サービスは、タイルをリアルタイムに作成するよりも、タイルをキャッシュから取得するサービスのほうが高速です。このため、グローブ サービスは常にキャッシュを使用します。
グローブ キャッシュとマップ キャッシュ
2D マップ サービスの作業をしたことがあれば、マップ キャッシュの概念には精通しているかもしれません。グローブ キャッシュは、マップ キャッシュとは異なるファイル形式とフォルダー階層を使って格納されます。ただし、Esri グローブ クライアント (ArcGlobe および ArcGIS Explorer Desktop) は、2D グローブ キャッシュを読み取ることができるため、既存のマップ キャッシュがあれば、常にグローブ キャッシュを複製する必要はありません。
標高レイヤーではグローブ キャッシュが必要です。これは、標高レイヤーがオンデマンドの生成でサポートされていないためです。総合的なパフォーマンスを向上させるために、すべてのレイヤーでキャッシュを生成することをお勧めします。
キャッシュの作成方法
グローブ キャッシュに最初に組み込むデータの量は、管理者が決定します。キャッシュには、完全データ キャッシュ、部分データ キャッシュ、オンデマンド (JIT) データ キャッシュの 3 種類があります。
完全データ キャッシュ
完全データ キャッシュは、データセットに定義されているすべての領域と詳細レベルを対象に、データ タイルを生成して保存することを意味します。完全データ キャッシュは、ArcGlobe 使用して、すべてのレイヤーで実現することができます。可能であれば、グローブ サービスを導入する方法として完全データ キャッシュの生成を推奨します。
注意:
標高としてのラスター データをグローブ サービスの一部として提供するためには、常にその完全データ キャッシュが必要です。具体的な方法については「グローブ キャッシュ タイルの作成」をご参照ください。
部分データ キャッシュ
部分データ キャッシュは、キャッシュを特定の詳細レベルでのみ生成したものです。部分データ キャッシュのみを構築した場合、キャッシュでカバーされない詳細レベルのデータ タイルは、必要に応じてサーバー上で生成することができます。
データが広範なエリアを多くの詳細レベルでカバーする場合、部分キャッシュの方が完全キャッシュより実用的です。部分データ キャッシュは、ユーザーが最も操作すると思われる詳細レベルで構成しておきます。クライアントが他の詳細レベルをリクエストした場合は、それらのタイルをオンデマンド キャッシュで生成することができます。
オンデマンド データ キャッシュ
オンデマンド データ キャッシュでは、クライアントによってリクエストされた表示エリアと詳細レベルのタイルのみを生成します。グローブをナビゲートすると、サーバーがタイルを生成してそれらをキャッシュに追加します。このモードのデータ キャッシュは、アクセスしたエリアだけがキャッシュされることから、オンデマンドまたはジャスト イン タイム (JIT) データ キャッシュと呼ばれます。これらのタイルはディスク上に保存されるため、別のユーザーが同じエリアと詳細レベルの表示をリクエストした場合は、それらを再利用できます。
オンデマンド キャッシュを使用すると (最初にキャッシュ作成に費やす時間がないため) グローブ サービスを最も短い時間で公開できますが、最初にタイルをリクエストするクライアントのパフォーマンスは、タイルがすでにキャッシュされている場合よりも低下します。
オンデマンド キャッシュに対して、標高としてのラスター データを除くすべてのデータ タイプがサポートされます。
キャッシュの作成
グローブ キャッシュを作成するには、次の 2 つの作業が必要です。
サーバー キャッシュ ディレクトリ
サーバー キャッシュ ディレクトリは、ディスク上でキャッシュ タイルが格納されるフォルダーです。ArcGIS Server サイトを作成する場合、サーバー ディレクトリのために指定した場所にサーバー キャッシュ ディレクトリが作成されます。1 つのサーバー キャッシュ ディレクトリに複数のサービスのキャッシュを保持できます。サーバーには、必要に応じて複数のサーバー キャッシュ ディレクトリを追加することもできます。その結果、[サービス エディター] の [キャッシュ] タブでは、キャッシュを格納するために使用するサーバー キャッシュ ディレクトリを選択することができます。
別の GIS サーバー コンピューターをサイトに追加する場合、サイト内のすべてのコンピューターから参照できるように、サーバー キャッシュ ディレクトリでファイル共有を有効化する必要があります。このプロセスは、ArcGlobe または ArcMap のどちらで作業している場合でも同じです。詳細については、「サーバー ディレクトリについて」および「複数のコンピューターによる導入の構成」をご参照ください。サーバーがディレクトリ内にタイルを正常に配置できるように、ArcGIS Server アカウントに必ずサーバー キャッシュ ディレクトリへの書き込みアクセス権限を与えてください。キャッシュを作成し終えたら、書き込みアクセス権限を必要に応じて削除することができます。
グローブ キャッシュの格納方法
すべてのグローブ キャッシュは、サーバー キャッシュ ディレクトリの GlobeCache フォルダーに格納されます。GlobeCache フォルダーを作成する必要はありません。最初にグローブ サービスを作成したときに、フォルダーが自動的に作成されます。グローブ サービスを作成する際には、常に、サービスにサーバー キャッシュ ディレクトリを割り当てます。そのレイヤー キャッシュは自動的に GlobeCache フォルダーに格納されます。
複数のグローブ サービスを同じサーバー キャッシュ ディレクトリに割り当てることができます。同じサーバー キャッシュ ディレクトリに割り当てられたグローブ サービスはすべて、同じ GlobeCache フォルダーを共有します。
一般に、グローブ サービスのレイヤーごとに、GlobeCache ディレクトリの下に別のキャッシュが存在します。例外は、グループの子レイヤーで 1 つのキャッシュを共有する、統合されたグループ レイヤーと Web ベース レイヤー (WMS、マップ サービス レイヤーなど) だけです。
グローブ サービス内のすべてのレイヤーのキャッシュは同じサーバー キャッシュ ディレクトリに存在していなければなりません。グローブ サービスごとに異なるサーバー キャッシュ ディレクトリを使用することは可能ですが、ディスク容量に余裕がある場合は、すべてのグローブ サービスのキャッシュ ディレクトリを 1 つに統一することが推奨されます。
サーバー キャッシュ ディレクトリ内のフォルダー構造
サーバー キャッシュ ディレクトリを開いて、キャッシュ タイルを調べることができます。グローブ タイル イメージは ArcGlobe または ArcGIS Explorer Desktop でしか表示できませんが、タイル名、サイズ、ディスク上でのファイルの場所は確認できます。
GlobeCache フォルダー内のキャッシュはディレクトリ階層を構成します。トップ レベル ディレクトリには、グローブ レイヤーの名前が付きます。このディレクトリには、グローブの 6 つの面のそれぞれに対するサブディレクトリと、キャッシュに接続されたレイヤー ファイルが含まれています。次に、グローブがキャッシュされるレベルごとのフォルダーがあり、レベルの行を表すフォルダーがこれに続きます。これらの行フォルダーに、実際のタイルが含まれます。
すでに 2D マップ キャッシュがある場合のグローブ キャッシュの作成の必要性
ArcGIS グローブ クライアントでの 2D および 3D 使用の高速化という点では、ArcGIS Online/Bing Maps/Google Maps タイル スキーマを使用して 2D マップ キャッシュを構築すると、最適なパフォーマンスが得られます。表示は、グローブ キャッシュの速度を超えることがあります。このタイル スキーマで 2D キャッシュを作成する場合、グローブ キャッシュを作成して維持する必要性がなくなります。これらのタイル スキーマの 1 つを使用できない場合は、グローブ サービス キャッシュを使って最適なパフォーマンスを得るようにします。
ヒント:
以前 ArcGIS Online が使用した WGS 1984 ベースの座標系を使って作成された 2D マップ キャッシュも、グローブ キャッシュと同じ速度か、それよりも高速で表示されます。
マップ サービスを ArcGlobe に追加するシナリオの 1 つは、2D マップ キャッシュがすでに作成されていて、その 2D マップ キャッシュから同一の 3D グローブ キャッシュを作成したい場合です。このシナリオでは、キャッシュの生成にのみ触れ、グローブのナビゲートは行いません。