Ao exportar um FeatureCollection
como um recurso FeatureView
, é possível definir parâmetros que priorizam quais elementos são renderizados em um
determinado nível de zoom (redução) e como os elementos sobrepostos são ordenados (ordem z).
Essas configurações
afetam a velocidade e as características de exibição dos objetos FeatureView
. As
seções a seguir descrevem os parâmetros de otimização e demonstram o
impacto deles usando diagramas conceituais em que os blocos do mapa são delineados por
linhas tracejadas, os elementos visíveis são polígonos de linhas sólidas e os elementos descartados (reduzidos)
são polígonos com linhas tracejadas e sem preenchimento.
O bloco de código a seguir é um exemplo de exportação de FeatureCollection
para FeatureView
que destaca os parâmetros de otimização descritos nesta página.
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']
});
Recursos máximos por bloco
O parâmetro de recursos máximo por bloco (maxFeaturesPerTile
) define o
número máximo de elementos a serem renderizados em um único bloco de mapa. Esse valor é
um limite máximo e pode ser significativamente menor, dependendo da
estratégia de redução. Esse valor pode ser definido como qualquer valor
entre 1 e 2.000. Valores mais altos mostram mais recursos por bloco, mas os blocos levam mais tempo para carregar.
Observe na tabela a seguir que, à medida que o valor do parâmetro maxFeaturesPerTile
diminui, o número de elementos que se cruzam em cada bloco do mapa também diminui. Um
bloco pode ter menos do que o máximo, mas não mais.
Todos os recursos (para referência) |
Não mostra mais de cinco recursos por bloco. |
Não mostra mais de dois recursos por bloco. |
Classificação de desbaste
O parâmetro de classificação de redução (thinningRanking
) controla como os dados são
priorizados para redução com base no tipo de geometria, no tamanho do elemento e nos valores da
propriedade do elemento. Ele aceita um conjunto de regras que informam ao algoritmo de redução
quais recursos devem ser reduzidos antes de outros quando
maxFeaturesPerTile
é alcançado. Cada regra
inclui uma propriedade
de recurso seguida pela direção de classificação
(crescente/ASC
ou decrescente/DESC
). Pode haver uma ou mais regras. Além
das propriedades de elementos tradicionais, há duas propriedades especiais que podem ser
usadas para priorizar o alisamento: .geometryType
e .minZoomLevel
.
.geometryType
: caracteriza elementos como pontos, linhas ou polígonos. Esses tipos de geometria são quantificados como pequeno, médio e grande, respectivamente, para fins de classificação..minZoomLevel
: o nível de zoom mínimo do mapa em que um elemento pode ser renderizado em um bloco. Os níveis de zoom abaixo desse valor não vão mostrar o recurso. Os níveis de zoom maiores ou iguais a esse valor podem mostrar o recurso. Os níveis de zoom baixos representam uma região geográfica maior por bloco de mapa do que os níveis de zoom mais altos. Os elementos pontuais recebem um valor de 0, que é visível em todos os níveis de zoom. As geometrias de linha e polígono recebem valores com base nos limites (linhas) ou na área (polígonos): elementos grandes têm valores de.minZoomLevel
menores do que elementos menores.
As regras de classificação de redução podem ser fornecidas como uma string ou uma lista de strings, em que um nome de propriedade e a direção de classificação desejada são separados por um espaço:
// 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']
As regras acima direcionam o algoritmo de redução para priorizar elementos com um atributo "my-property" maior (reduzir elementos com um valor "my-property" menor primeiro), priorizar elementos com um tipo de geometria menor (por exemplo, reduzir polígonos antes de linhas e linhas antes de pontos) e priorizar elementos com um nível mínimo de zoom menor (pontos sobre polígonos grandes sobre polígonos menores).
A tabela a seguir ilustra como a alteração da regra thinningRanking
para uma
propriedade size
afeta os recursos que são renderizados. O número total de
recursos por bloco (coluna "Todos os recursos") é maior que 5, portanto, o lixamento é
aplicado para limitar os recursos que são renderizados
(coluna thinningRanking: 5
). Na primeira linha, os recursos são
ordenados por size
, do maior para o menor, o que significa que os recursos maiores têm
prioridade sobre os menores (os recursos são desenhados em ordem decrescente por tamanho
até que maxFeaturesPerTile
seja alcançado). Na segunda linha, os elementos são
ordenados por tamanho crescente, de modo que os elementos menores são desenhados primeiro, em ordem de
tamanho, até que maxFeaturesPerTile
seja alcançado.
thinningRanking |
Todos os recursos (para referência) | maxFeaturesPerTile: 5 |
---|---|---|
Priorize os recursos com |
||
Priorize os recursos com |
Estratégia de redução
O parâmetro de estratégia de redução (thinningStrategy
) é usado com a
classificação de redução (thinningRanking
) para reduzir os dados no
momento da exportação e melhorar a performance de renderização. Há duas estratégias
compatíveis: HIGHER_DENSITY
e GLOBALLY_CONSISTENT
. Ao reduzir o número de elementos em um nível de zoom específico, uma estratégia de redução de densidade maior significa que cada bloco pode ficar o mais próximo possível do limite de maxFeaturesPerTile
sem considerar a classificação dos elementos em outros blocos. A estratégia de redução consistente globalmente significa que,
se um elemento for removido por redução de qualquer bloco, todos os elementos com classificação de redução igual ou inferior serão removidos de todos os blocos,
independentemente de um bloco exigir redução (excede o limite de maxFeaturesPerTile
). Use a estratégia HIGHER_DENSITY
para otimizar a densidade de recursos e
a estratégia GLOBALLY_CONSISTENT
para otimizar a representação consistente de classificação de recursos
entre os blocos.
A tabela a seguir demonstra como a alteração de thinningStrategy
afeta
o desbaste. Neste exemplo, os dados são reduzidos usando a forma/cor dos pontos. Os círculos azuis, quadrados verdes e triângulos vermelhos têm classificações de redução, da melhor para a pior. Para cada
thinningStrategy
(HIGHER_DENSITY
e GLOBALLY_CONSISTENT
),
há três valores diferentes para maxFeaturesPerTile
especificados: um número
grande o suficiente para mostrar todos os recursos, 10 recursos e 9 recursos.
Com HIGHER_DENSITY
e 10 maxFeaturesPerTile
, seis triângulos vermelhos (menor
prioridade no rank de redução) são eliminados do bloco no canto superior esquerdo, e um triângulo
vermelho é eliminado do bloco no canto inferior esquerdo. Com HIGHER_DENSITY
e 9
maxFeaturesPerTile
, sete triângulos vermelhos são reduzidos no bloco de canto superior esquerdo,
e um triângulo vermelho e um quadrado verde são reduzidos no bloco de canto inferior esquerdo.
Nesses exemplos, cada bloco é reduzido de forma independente, sem considerar
a classificação de redução de recursos em blocos vizinhos. Dependendo das características dos dados, essa estratégia de redução pode fazer com que os blocos de mapa adjacentes pareçam diferentes uns dos outros, mas maximiza o número de elementos desenhados.
Lembre-se de que o GLOBALLY_CONSISTENT
significa que, se um recurso for removido
por redução de detalhes de qualquer bloco, todos os outros recursos com thinningRank
igual ou pior também serão removidos. Com
maxFeaturesPerTile
definido como 10, os triângulos vermelhos não aparecem em nenhum bloco
porque um triângulo vermelho é reduzido nos blocos de canto superior esquerdo e inferior esquerdo.
Com maxFeaturesPerTile
definido como 9, os quadrados verdes não aparecem
em nenhum bloco porque um quadrado verde é reduzido no bloco inferior esquerdo.
Essa estratégia de redução tem menos probabilidade de produzir a aparência
distinta que a estratégia HIGHER_DENSITY
pode, mas tem o potencial de
reduzir os blocos para um número de recursos muito abaixo do limite de maxFeaturesPerTile
.
thinningStrategy |
Todos os recursos (para referência) | maxFeaturesPerTile: 10 | maxFeaturesPerTile: 9 |
---|---|---|---|
Redução menos agressiva. Mantém alta densidade de elementos com a redução de elementos dentro dos blocos. |
|||
Redução mais agressiva. Mantém a classificação mínima de redução consistente em todo o mundo com a redução entre blocos. |
Classificação em ordem Z
O parâmetro de classificação de ordem Z (zOrderRanking
) controla a ordem dos
elementos sobrepostos. Ele aceita um conjunto de regras que definem quais recursos
devem aparecer abaixo/acima de outros quando eles se sobrepõem. A lógica e o formato da regra
para definir a ordem de recursos é o mesmo que
reduzir a classificação. Consulte essa seção para mais
detalhes.
As regras de classificação de ordem Z podem ser fornecidas como uma string ou uma lista de strings, em que um nome de propriedade e a direção de classificação desejada são separados por um espaço:
// 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']
As regras acima especificam que os elementos com um valor maior de "my-property" precisam aparecer abaixo dos elementos com um valor menor. Os elementos com um tipo de geometria menor precisam aparecer abaixo dos elementos com um tipo de geometria maior (por exemplo, pontos abaixo de linhas e linhas abaixo de polígonos). Os elementos com um nível mínimo de zoom menor (elementos maiores) precisam aparecer abaixo dos elementos com um nível mínimo de zoom maior (elementos menores).
A tabela a seguir demonstra como a alteração da regra zOrderRanking
para uma
propriedade "size" afeta quais recursos aparecem na frente de outros quando
se sobrepõem. Na primeira linha, os recursos são classificados por tamanho em ordem decrescente,
o que significa que os recursos maiores precisam aparecer abaixo dos menores
(os maiores são desenhados primeiro). Por outro lado, na segunda linha, os recursos
são classificados por tamanho em ordem crescente, o que significa que recursos de tamanho menor
precisam aparecer abaixo de recursos maiores (os menores são desenhados primeiro).
Os elementos com |
Os elementos com |