フィーチャ キャッシュの条件

Web フィーチャ レイヤー」では、フィーチャ キャッシュを使用して、フィーチャを一時フォルダーに保存することで、パフォーマンスと一般的なタスクを改善します。 キャッシュは自動的に管理され、フィーチャがキャッシュされると、データを取得するのに必要なクエリの数が減り、描画時間が改善されます。 これは、大規模または複雑なデータセットを扱う場合、特定のマップ範囲で作業する場合、多数のユーザーが同じサービスを使用する場合などに有効です。 また、サービス リクエスト数が減るため、サーバーへの負担も軽減されます。

デフォルトでは、フィーチャ キャッシュはアプリケーションによって自動的に作成され、これが推奨設定です。 キャッシュは、マップの描画が終了し、次の 5 つの条件が満たされるたびに作成されます。

  • レイヤーが [コンテンツ] ウィンドウに表示されている
  • レイヤーが「表示縮尺範囲」に基づいて表示されている
  • 描画されたフィーチャの総数がサービス レイヤーの行数の閾値の 5 倍よりも少ない
  • レイヤー プロパティ ダイアログ ボックスのキャッシュ オプションが [セッション終了時にキャッシュを削除] に設定されている
  • フィルターが存在する場合に、表示範囲内のフィーチャの推定数が、行数の閾値の 5 倍未満である

注意:

フィルターには、「表示フィルター定義クエリ」、「サブタイプ グループ レイヤー」、「シンボル クラス」などがあります。

注意:

レイヤーを編集する場合は、定義クエリを含む、公開されているレイヤーをキャッシュすることはお勧めしません。 これは、サービスベースの定義クエリは ArcGIS Pro で使用できないためです。 これらのレイヤーを使用すると、定義クエリを満たしていないフィーチャが、他のアプリケーションでは表示されなくても、ArcGIS Pro で表示される可能性があります。 これらのフィーチャは、セッション中に表示されなくなる場合があり、ArcGIS Pro を次に開いたときには表示されなくなります。

行数の閾値、推定行数、サブタイプ グループ レイヤーの追加詳細もキャッシュを自動的に作成するかどうかの決定に使用されます。

行数の閾値

行数の閾値は、フィーチャ キャッシュをいつ作成するかを決定するために使用されます。 行数の閾値は、2000 またはフィーチャ サービス レイヤー「maxRecordCount」のいずれか低い方に設定されます。

推定行数

推定行数がサポートされ、レイヤーにフィルターがある場合、ArcGIS Pro は、推定行数と前述の 5 つの条件を使用して、フィーチャ キャッシュを作成するかどうかを決定します。 レイヤーにフィルターがない場合、推定行数は使用されず、ArcGIS Pro は前述の 5 つの条件を使用して、フィーチャ キャッシュを作成するかどうかを決定します。

フィーチャ サービス レイヤー全体の推定行数が行数の閾値の 5 倍を下回る場合は、フィーチャ サービス レイヤー全体のフィーチャ キャッシュが作成されます。

推定行数をサポートしないフィーチャ サービス レイヤーでは、レイヤーにフィルターがあるとフィーチャ キャッシュは作成されません。

注意:

フィーチャ サービスが推定行数をサポートしているかどうかを判断するには、レイヤーの JSON リソースで infoInEstimates パラメーターを調べます。 この配列内に「count」が表示される場合、ArcGIS Pro は、推定行数を取得します。

サブタイプ グループ レイヤー

サブタイプ グループ レイヤーは、フィルターと見なされる場合と見なされない場合があります。

サブタイプ グループ レイヤーは、その内の少なくとも 1 つのサブレイヤーが表示可能な場合にフィルターと見なされます。 この場合では、推定行数がサポートされている場合、推定行数を使用してフィーチャ キャッシュが作成されます。

すべてのサブタイプ グループ レイヤーが表示可能な場合、サブタイプ グループ レイヤーはフィルターとは見なされません。 この場合では、表示されるすべてのサブタイプ グループ レイヤーの描画件数の合計を使用して、フィーチャ キャッシュを作成するかどうかを決定します。

表示可能なサブタイプ グループ レイヤーがない場合、サブタイプ グループ レイヤーはフィルターとは見なされません。 この場合では、サブタイプ グループ レイヤーは表示不可と見なされ、それらのレイヤーのフィーチャ キャッシュは作成されません。

アプリケーションがレイヤーのフィーチャ キャッシュを作成しないと判断した (上記の 5 つの条件が満たされていない) 場合では、「キャッシュを手動で管理」することで、キャッシュを活用した優れたパフォーマンスを実現できます。

関連トピック