J'ai joué avec le nouveau rendu de cluster de points dans QGIS 3.0.2 et c'est génial - beaucoup plus facile (et plus rapide) que d'avoir à faire le clustering vous-même.
Pour montrer ce que je veux dire, voici un exemple d'accidents de la route à Édimbourg en utilisant les données STATS19 et un rayon de 30 mètres.
Je ne peux pas déterminer comment configurer l'ordre z de sorte que les plus grands clusters soient dessinés devant les plus petits.
Je connais la variable @cluster_size - c'est ce que j'utilise pour mettre à l'échelle et colorer les symboles. Pour cela, j'utilise les assistants de taille et de couleur. J'ai supprimé les marqueurs de police pour supprimer le texte de chaque cluster.
La taille des marqueurs est définie comme suit: -
coalesce(scale_exp(@cluster_size, 0, 50, 1, 200, 0.57), 0)
La couleur des marqueurs est définie comme suit: -
coalesce(ramp_color('custom ramp',scale_linear( @cluster_size, 0, 50, 0, 1), '#000000')
Ce que j'ai essayé jusqu'à présent: -
- Niveaux de symboles - Pas de chance; impossible de sélectionner un nom de variable.
- Rendu des calques> Contrôler l'ordre de rendu des entités et choisissez @cluster_size comme tri. Ne semble pas avoir d'effet.
- Style gradué utilisant @cluster_size car l'expression ne fonctionne pas.
Est-ce que quelqu'un sait si c'est possible, ou est-ce une limitation avec ce moteur de rendu particulier?
Je sais qu'il y a beaucoup d'autres façons de le faire (tampon / jointure spatiale, plugins), mais le nouveau rendu devrait être beaucoup plus rapide. Ou ai-je oublié quelque chose d'évident? :)
la source
Réponses:
Il semble que l'implémentation du cluster de points ne le permette pas nativement.
Considérez le rendu de cluster de points - il analyse et clusterise essentiellement les données de points au moment du rendu, créant une nouvelle pseudo-couche. Cette couche n'est pas accessible à l'utilisateur. On ne peut pas interroger un point en cluster. On ne peut pas calculer sur le terrain un attribut @cluster_size .
Le rendu de cluster de points hérite de l'ordre de rendu de la source à l'aide de l'ordre de rendu de la fonctionnalité de contrôle ( QgsFeatureRequest :: OrderByClause), laissant la possibilité d'une solution de contournement intelligente à l'aide d'attributs et d'expressions, mais certains schémas de classement ne sont pas garantis pour être cohérents.
À titre d'exemple, considérons une couche de points avec un rendu ordonné croissant par un attribut "Latitude". Les points les plus au nord sont rendus au sommet des points plus au sud. Le rendu de cluster de points n'a pas d'attribut "Latitude" pour ses nouvelles fonctionnalités, bien qu'il hérite d'un semblant de cet ordre de la source. Il peut y avoir des cas où un cluster plus au sud se rend au sommet d'un cluster plus au nord, en raison de l'ordre des points d'origine.
la source