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 规则如何影响绘制哪些地图项。每个图块的地图项总数(“所有地图项”列)大于 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 对精简的影响。在此示例中,系统使用点的形状/颜色来精简数据。蓝色圆圈、绿色方形和红色三角形分别具有从最好到最差的缩减排名。对于每个 thinningStrategyHIGHER_DENSITYGLOBALLY_CONSISTENT),maxFeaturesPerTile 有三个不同的值:一个足够大以显示所有功能的数字、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 规则如何影响哪些地图项在重叠时会显示在其他地图项前面。在第一行中,地图项按大小从大到小排序,也就是说,较大的地图项应显示在较小的地图项下方(较大的地图项会先绘制)。相反,在第二行中,地图项会按大小从小到大排序,这意味着尺寸较小的地图项应显示在尺寸较大的地图项下方(系统会先绘制尺寸较小的地图项)。

zOrderRanking: 'size DESC'

size 较小的地图项会显示在 size 较大的地图项上方。

zOrderRanking: 'size ASC'

size 较大的地图项会显示在 size 较小的地图项上方。