FeatureView の最適化

FeatureCollectionFeatureView アセットとしてエクスポートするときに、特定のズームレベルでレンダリングされる特徴(シンニング)と、重複する特徴の順序付け(Z 順序)を優先するパラメータを設定できます。これらの設定は、FeatureView オブジェクトの速度と表示特性に影響します。次のセクションでは、最適化パラメータについて説明します。地図タイルには破線が引かれ、表示される特徴は実線のポリゴン、破棄された(間引かれた)特徴は破線のポリゴン(塗りつぶしなし)で示されたコンセプト図を使用して、その影響を示します。

次のコードブロックは、このページで説明する最適化パラメータをハイライト表示する FeatureCollection から FeatureView へのエクスポートの例です。

Export.table.toFeatureView({
  collection: fooFc,
  assetId: 'foo-featureview-demo',
  description: 'foo-featureview-demo',
  maxFeaturesPerTile: 1500,
  thinningStrategy: 'HIGHER_DENSITY',
  thinningRanking: ['my-property DESC'],
  zOrderRanking: ['my-property DESC']
});

タイルあたりの最大特徴数

タイルあたりの最大対象物数(maxFeaturesPerTile)パラメータは、単一の地図タイルにレンダリングする対象物の最大数を定義します。この値は上限であり、スキニング戦略によっては大幅に低くなる場合があります。この値は 1 ~ 2,000 の任意の値に設定できます。値を大きくすると、タイルあたりの特徴量が増えますが、タイルの読み込みに時間がかかります。

次の表に示すように、maxFeaturesPerTile パラメータの値が小さくなると、各地図タイルとの交差する特徴の数も少なくなります。タイルの要素数は最大値より少なくすることができますが、それ以上には増やせません。

すべての機能(参考)

maxFeaturesPerTile: 5

タイルごとに表示される特徴は 5 個までです。

maxFeaturesPerTile: 2

タイルごとに 2 つの特徴のみが表示されます。

ランキングの絞り込み

間引きのランク付け(thinningRanking)パラメータは、ジオメトリのタイプ、対象物のサイズ、対象物のプロパティ値に基づいて、間引きの優先順位付けを行う方法を制御します。maxFeaturesPerTile に達したときに、どの特徴を他の特徴より先に間引くかを、間引きアルゴリズムに通知する一連のルールを受け入れます。各ルールには、特徴プロパティと並べ替えの方向(昇順/ASC または降順/DESC)が含まれます。ルールは 1 つ以上指定できます。従来の特徴プロパティに加えて、.geometryType.minZoomLevel の 2 つの特別なプロパティを使用して、間引きの優先順位を設定できます。

  • .geometryType - 対象物をポイント、ライン、ポリゴンとして特徴付けます。これらのジオメトリ タイプは、並べ替えのためにそれぞれ小、中、大として定量化されます。
  • .minZoomLevel - 対象物をタイルにレンダリングできる最小の地図ズームレベル。この値より低いズームレベルでは対象物は表示されませんが、この値以上のズームレベルでは対象物が表示される場合があります。低ズームレベルでは、高ズームレベルよりも地図タイルあたりの対象地域が広くなります。ポイント対象物には値 0(すべてのズームレベルで表示)が割り当てられます。線形ジオメトリとポリゴン ジオメトリには、境界(線)または面積(ポリゴン)に基づいて値が割り当てられます。対象物が大きければ大きいほど、.minZoomLevel 値は小さくなります。

間引きランキング ルールは、文字列または文字列のリストとして指定できます。プロパティ名と希望する並べ替え方向はスペースで区切ります。

// String input format for setting thinning ranking based on 3 rules.
'my-property DESC, .geometryType ASC, .minZoomLevel ASC'

// List of strings input format for setting thinning ranking based on 3 rules.
['my-property DESC', '.geometryType ASC', '.minZoomLevel ASC']

上記のルールは、細分化アルゴリズムに、より大きな「my-property」属性を持つ対象物(「my-property」値が小さい対象物)を優先的に細分化するように指示します(最初に細分化される対象物は「my-property」値が小さい対象物です)。また、より小さいジオメトリ タイプを持つ対象物(ポリゴンよりも線、線よりもポイント)を優先的に細分化するように指示します。さらに、最小ズームレベルが小さい対象物(大きなポリゴンよりも小さなポリゴンよりもポイント)を優先的に細分化するように指示します。

次の表に、size プロパティの thinningRanking ルールを変更した場合に、描画される特徴にどのような影響があるかを示します。タイルあたりの特徴の合計数([すべての特徴] 列)が 5 を超えているため、シンニングが適用され、描画される特徴が制限されます(thinningRanking: 5 列)。最初の行では、特徴量は size で大きい順に並べ替えられています。つまり、大きな特徴量が小さな特徴量よりも優先されます(特徴量は maxFeaturesPerTile に達するまでサイズの降順で描画されます)。2 行目では、特徴量はサイズの昇順で並べ替えられるため、maxFeaturesPerTile に達するまで、サイズの順に小さい特徴量が最初に描画されます。

thinningRanking すべての機能(参考) maxFeaturesPerTile: 5

'size DESC'

size が大きい特徴を優先します(size が小さい特徴を最初に除外します)。

'size ASC'

size が小さい特徴を優先します(size が大きい特徴を最初に除外します)。

間引き戦略

スキニング戦略パラメータ(thinningStrategy)は、スキニング ランキングthinningRanking)とともに使用され、エクスポート時にデータをスキニングしてレンダリング パフォーマンスを向上させます。サポートされている戦略は HIGHER_DENSITYGLOBALLY_CONSISTENT の 2 つです。特定のズームレベルでシンニングを行う場合、高密度シンニング戦略では、他のタイルの対象物のランクに関係なく、各タイルが maxFeaturesPerTile の上限にできるだけ近づく可能性があります。グローバルに整合するシンニング戦略とは、任意のタイルでシンニングによって特徴が削除された場合、タイルがシンニングを必要とするかどうか(maxFeaturesPerTile の上限を超えているかどうか)に関係なく、シンニング ランクが同じかそれ以下の特徴がすべてのタイルから削除されることを意味します。HIGHER_DENSITY 戦略を使用して特徴密度を最適化し、GLOBALLY_CONSISTENT 戦略を使用して特徴ランクのタイルの間の一貫した表現を最適化します。

次の表に、thinningStrategy の変更がスキニングに与える影響を示します。この例では、ポイントの形状と色を使用してデータが間引かれています。青い円、緑色の正方形、赤い三角形は、優先度の高い順に間引きランクが割り当てられています。thinningStrategyHIGHER_DENSITYGLOBALLY_CONSISTENT)ごとに、maxFeaturesPerTile に 3 つの異なる値が指定されています。すべての特徴を表示するのに十分な数、10 個の特徴、9 個の特徴です。

HIGHER_DENSITY と 10 個の maxFeaturesPerTile を使用すると、左上のタイルの赤い三角形 6 個(スキニング ランクで優先度が最も低い)と、左下のタイルの赤い三角形 1 個がスキニングされます。HIGHER_DENSITY と 9 つの maxFeaturesPerTile を使用すると、左上のタイルの 7 つの赤い三角形が細くなり、左下のタイルの赤い三角形と緑色の正方形が細くなります。これらの例では、隣接するタイルの特徴量の細分化ランクを考慮せずに、各タイルが個別に細分化されます。データの特性によっては、この間引き戦略により、隣接する地図タイル同士が大きく異なるように見えることがありますが、描画される特徴の数は最大化されます。

GLOBALLY_CONSISTENT のシンニングとは、いずれかのタイルのシンニングによって特徴が削除されると、同じかそれより悪い thinningRank を持つ他の特徴もすべて削除されることを意味します。maxFeaturesPerTile が 10 に設定されている場合、左上と左下のタイルで赤い三角形が細くなるため、どのタイルにもありません。maxFeaturesPerTile が 9 に設定されている場合、左下のタイルで緑色の正方形が細くなっているため、どのタイルにもありません。この間引き戦略では、HIGHER_DENSITY 戦略のように明確なタイルの外観が得られる可能性が低くなりますが、maxFeaturesPerTile の上限をはるかに下回る数の特徴にタイルを間引く可能性があります。

thinningStrategy すべての機能(参考) maxFeaturesPerTile: 10 maxFeaturesPerTile: 9

'HIGHER_DENSITY'

より低いレベルの細分化。

タイル内細分化により、高い特徴密度を維持します。

'GLOBALLY_CONSISTENT'

より積極的なスキニング。

タイルの間のスキニングにより、グローバルに整合した最小スキニングランクを維持します。

Z オーダーのランキング

Z オーダー ランキング(zOrderRanking)パラメータは、重複する特徴の順序を制御します。重複するときに他のフィーチャの下または上に表示されるフィーチャを定義する一連のルールを受け入れます。特徴の順序を設定するルールのロジックと形式は、ランキングの絞り込みと同じです。詳細については、そのセクションをご覧ください。

Z 順位付けルールは、文字列または文字列のリストとして指定できます。プロパティ名と希望する並べ替え方向はスペースで区切ります。

// String input format for setting z-order ranking based on 3 rules.
'my-property DESC, .geometryType ASC, .minZoomLevel ASC'

// List of strings input format for setting z-order ranking based on 3 rules.
['my-property DESC', '.geometryType ASC', '.minZoomLevel ASC']

上記のルールでは、「my-property」値が大きい特徴が値の小さい特徴の下に表示され、ジオメトリ タイプが小さい特徴がジオメトリ タイプが大きい特徴の下に表示されるように指定しています(例: 線の下にポイント、ポリゴンの下に線)。また、最小ズームレベルが小さい特徴(大きな特徴)が、最小ズームレベルが大きい特徴(小さな特徴)の下に表示されるように指定しています。

次の表に、[size] プロパティの zOrderRanking ルールを変更すると、重複したときにどの特徴が他の特徴の前に表示されるかを示します。最初の行では、特徴はサイズの降順で並べ替えられます。つまり、サイズの大きい特徴がサイズの小さい特徴の下に表示されます(サイズの大きい特徴が先に描画されます)。一方、2 行目では、特徴はサイズの昇順で並べ替えられます。つまり、サイズの小さい特徴がサイズの大きい特徴の下に表示されます(小さい特徴が先に描画されます)。

zOrderRanking: 'size DESC'

size が小さい特徴は、size が大きい特徴の上に表示されます。

zOrderRanking: 'size ASC'

size が大きい特徴は、size が小さい特徴の上に表示されます。