Estou brincando com o novo renderizador de cluster de pontos no QGIS 3.0.2 e é ótimo - muito mais fácil (e mais rápido) do que ter que fazer você mesmo o cluster.
Para mostrar o que quero dizer, aqui está um exemplo de acidentes de trânsito em Edimburgo usando dados STATS19 e um raio de 30m.
Não consigo descobrir como configurar a ordem z para que os clusters maiores sejam desenhados na frente de clusters menores.
Estou ciente da variável @cluster_size - é o que estou usando para dimensionar e colorir os símbolos. Para isso, estou usando os assistentes de tamanho e cor. Eu removi os marcadores de fonte para remover o texto de cada cluster.
O tamanho dos marcadores é definido da seguinte forma: -
coalesce(scale_exp(@cluster_size, 0, 50, 1, 200, 0.57), 0)
A cor dos marcadores é definida da seguinte forma: -
coalesce(ramp_color('custom ramp',scale_linear( @cluster_size, 0, 50, 0, 1), '#000000')
O que eu tentei até agora: -
- Níveis de símbolo - sem sorte; incapaz de selecionar um nome de variável.
- Renderização de camada> Ordem de renderização do recurso de controle e escolha @cluster_size como classificação. Não parece ter efeito.
- Estilo graduado usando @cluster_size, pois a expressão não funciona.
Alguém sabe se isso é possível ou isso é uma limitação para esse renderizador específico?
Eu sei que existem muitas outras maneiras de fazer isso (junção buffer / espacial, plugins), mas o novo renderizador deve ser muito mais rápido. Ou eu negligenciei algo óbvio? :)
fonte
Respostas:
Parece que a implementação do cluster de pontos não permite isso nativamente.
Considere o renderizador de cluster de pontos - ele essencialmente analisa e agrupa dados de pontos no momento da renderização, criando uma nova pseudo camada. Esta camada não está acessível ao usuário. Não se pode consultar um ponto em cluster. Não é possível calcular em campo um atributo @cluster_size .
O renderizador do cluster de pontos herda a ordem de renderização da origem usando a ordem de renderização do recurso Control ( QgsFeatureRequest :: OrderByClause), deixando em aberto a possibilidade de alguma solução inteligente usando atributos e expressões; no entanto, certos esquemas de pedidos não são consistentes.
Como exemplo, considere uma camada de pontos com renderização ordenada ascendente por um atributo "Latitude". Os pontos mais ao norte são renderizados no topo de pontos mais ao sul. O renderizador do cluster de pontos não possui um atributo "Latitude" para seus novos recursos, apesar de herdar alguma aparência dessa ordem da origem. Pode haver casos em que um cluster mais ao sul é processado no topo de um cluster mais ao norte, devido à ordem dos pontos originais.
fonte