FeatureView 最佳化

FeatureCollection 匯出為 FeatureView 素材資源時,您可以設定參數,指定在特定縮放等級下要優先算繪哪些地圖項目 (稀疏),以及重疊地圖項目的排序方式 (z 順序)。這些設定會影響 FeatureView 物件的速度和顯示特性。以下各節將說明最佳化參數,並透過概念圖表說明其影響,其中地圖圖塊以虛線劃分,可見地圖項目為實線多邊形,而捨棄 (精簡) 的地圖項目則為虛線且未填充的多邊形。

以下程式碼區塊是 FeatureCollectionFeatureView 匯出的範例,可突顯本頁所述的最佳化參數。

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 到 2000 之間的任何值。值越高,每個圖塊顯示的功能就越多,但圖塊的載入時間也會變長。

請注意,在下表中,隨著 maxFeaturesPerTile 參數值減少,與每個地圖圖塊交集的要素數量也會減少。資訊方塊的數量可能少於上限,但不得超過上限。

所有功能 (供參考)

maxFeaturesPerTile: 5

每個資訊方塊最多只能顯示 5 項地圖項目。

maxFeaturesPerTile: 2

每個資訊方塊最多顯示 2 項地圖項目。

稀疏排名

稀疏排名 (thinningRanking) 參數會根據幾何圖形類型、地圖項目大小和地圖項目屬性值,控制資料的稀疏優先順序。它會接受一組規則,讓系統在達到 maxFeaturesPerTile 時,通知精簡演算法應先精簡哪些功能。每項規則都包含一個功能屬性,後面接著排序方向 (遞增/ASC 或遞減/DESC);規則可以是一或多項。除了傳統地圖項目屬性外,還有兩個特殊屬性可用於優先處理精簡作業:.geometryType.minZoomLevel

  • .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」值較小的地圖項目)、優先順序給予幾何圖形類型較小的地圖項目 (例如,先精簡多邊形,再精簡點),以及優先順序給予最小縮放級別較小的地圖項目 (先精簡點,再精簡大多邊形,再精簡小多邊形)。

下表說明變更 size 屬性的 thinningRanking 規則,會如何影響繪製的功能。每個圖塊的地圖項目總數 (「All features」欄) 大於 5,因此會套用稀疏功能,限制繪製的地圖項目數量 (thinningRanking: 5 欄)。在第一列中,特徵會依 size 從大到小排序,也就是較大的特徵優先於較小的特徵 (特徵會依大小遞減順序繪製,直到達到 maxFeaturesPerTile)。在第二行中,地圖項目會依大小排序,從最小開始依序繪製,直到 maxFeaturesPerTile 為止。

thinningRanking 所有功能 (供參考) maxFeaturesPerTile: 5

'size DESC'

優先處理 size 較大的功能 (先刪除 size 較小的功能)。

'size ASC'

優先處理 size 較小的功能 (先刪除 size 較大的功能)

稀疏策略

稀疏化策略參數 (thinningStrategy) 與稀疏化排名 (thinningRanking) 一併使用,可在匯出時稀疏資料,以改善算繪效能。支援兩種策略:HIGHER_DENSITYGLOBALLY_CONSISTENT。在特定縮放等級進行精簡時,密度較高的精簡策略會讓每個圖塊盡可能接近 maxFeaturesPerTile 限制,而不考慮其他圖塊中的地圖項目排名。全域一致的瘦身策略是指如果透過瘦身從任何資訊方塊中移除某個地圖項目,則所有地圖項目都會從所有資訊方塊中移除,無論該資訊方塊是否需要瘦身 (超過 maxFeaturesPerTile 限制)。請使用 HIGHER_DENSITY 策略來最佳化地圖項目密度,並使用 GLOBALLY_CONSISTENT 策略來最佳化地圖項目排名的一致性。

下表說明變更 thinningStrategy 對稀疏化有何影響。在本例中,系統會使用點的形狀/顏色來稀疏資料。藍色圓圈、綠色方塊和紅色三角形分別代表從優到劣的篩選排名。對於每個 thinningStrategy (HIGHER_DENSITYGLOBALLY_CONSISTENT),您可以指定三個不同的 maxFeaturesPerTile 值:足以顯示所有功能的數字、10 個功能,以及 9 個功能。

HIGHER_DENSITY 和 10 maxFeaturesPerTile 的情況下,6 個紅色三角形 (在稀疏排名中優先順序最低) 會從左上方圖塊中移除,而 1 個紅色三角形會從左下方圖塊中移除。使用 HIGHER_DENSITY 和 9 個 maxFeaturesPerTile 時,左上方圖塊會從 7 個紅色三角形中減去 1 個,左下方圖塊則會從 1 個紅色三角形和 1 個綠色方塊中減去 1 個。在這些範例中,每個資訊方塊都會獨立進行精簡,不會考量相鄰資訊方塊中特徵的精簡排名。根據資料的特性,這項精簡策略可能會導致相鄰地圖圖塊看起來截然不同,但可盡可能增加繪製的地圖項目數量。

請注意,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 規則,影響重疊時哪些特徵會顯示在其他特徵前方。在第一行中,特徵會以遞減順序依大小排序,也就是說,較大尺寸的特徵應顯示在較小尺寸的特徵下方 (較大特徵會先繪製)。相反地,在第二列中,特徵會依大小以升冪排序,也就是說,較小的特徵應顯示在較大特徵下方 (較小特徵會先繪製)。

zOrderRanking: 'size DESC'

size 較小的功能會顯示在 size 較大的功能上方。

zOrderRanking: 'size ASC'

size 較大的功能會顯示在 size 較小的功能上方。