Adicionando valor de id incremental a recursos com determinado valor de atributo
Sep 07 2020
Estou usando o QGIS 3.12. Eu tenho uma camada de árvores e um campo virtual 'número da árvore' que conta todas as árvores que adicionei à camada ( $id). Desejo definir que se a altura de uma árvore for maior que 3 (no campo 'altura'), ela não será contada no campo 'número da árvore'. Isso pode ser feito?
Respostas
3 MrXsquared Sep 07 2020 at 01:54
Use if("height" > 3,NULL,$id)como expressão para seu campo virtual.
3 Taras Sep 07 2020 at 12:07
Apesar de uma sugestão de @MrXsquared, acho que essa tarefa deve ser abordada de uma maneira um pouco diferente.
Para obter uma cadeia de id contínua, tente a seguinte expressão na Calculadora de campo
if("height">3, array_find(array_agg($id, filter:="height">3), $id), NULL)
Resultando em
Se o "id"s tiver que começar com 1, use a seguinte expressão
if("height">3, array_find(array_agg($id, filter:="height">3), $id) + 1, NULL)
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?