Ich habe mit dem neuen Punktcluster-Renderer in QGIS 3.0.2 experimentiert und es ist großartig - viel einfacher (und schneller) als das Clustering selbst durchzuführen.
Um zu zeigen, was ich meine, hier ein Beispiel für Verkehrsunfälle in Edinburgh mit STATS19-Daten und einem Radius von 30 Metern.
Ich kann nicht herausfinden, wie die Z-Reihenfolge eingerichtet wird, damit die größten Cluster vor kleineren Clustern dargestellt werden.
Mir ist die Variable @cluster_size bekannt - sie wird zum Skalieren und Färben der Symbole verwendet. Hierfür benutze ich die Größen- und Farbassistenten. Ich habe die Schriftmarkierungen entfernt, um den Text aus jedem Cluster zu entfernen.
Die Größe der Marker ist wie folgt definiert:
coalesce(scale_exp(@cluster_size, 0, 50, 1, 200, 0.57), 0)
Die Farbe der Marker ist wie folgt definiert:
coalesce(ramp_color('custom ramp',scale_linear( @cluster_size, 0, 50, 0, 1), '#000000')
Was ich bisher versucht habe: -
- Symbolebenen - Kein Glück; Ein Variablenname kann nicht ausgewählt werden.
- Layer-Rendering> Steuern der Feature-Rendering-Reihenfolge und wählen Sie @cluster_size als Sortierung. Scheint keinen Effekt zu haben.
- Abgestufter Stil mit @cluster_size, da der Ausdruck nicht funktioniert.
Weiß jemand, ob dies möglich ist, oder ist dies eine Einschränkung bei diesem bestimmten Renderer?
Ich weiß, dass es noch viele andere Möglichkeiten gibt (Buffer / Spatial Join, Plugins), aber der neue Renderer sollte viel schneller sein. Oder habe ich etwas offensichtliches übersehen? :)
quelle
Antworten:
Es scheint, als ob die Implementierung des Punkt-Clusters dies nicht nativ zulässt.
Betrachten Sie den Punktcluster-Renderer - er analysiert und gruppiert Punktdaten beim Rendern und erstellt so eine neue Pseudoebene. Diese Ebene ist für den Benutzer nicht zugänglich. Ein Clustered Point kann nicht abgefragt werden. Ein @cluster_size- Attribut kann nicht vor Ort berechnet werden.
Der Punktclusterrenderer erbt die Renderreihenfolge von der Quelle mithilfe der Steuerelement- Feature- Renderreihenfolge ( QgsFeatureRequest :: OrderByClause), wobei die Möglichkeit einer cleveren Umgehung mithilfe von Attributen und Ausdrücken offen bleibt. Bestimmte Sortierschemata sind jedoch nicht garantiert konsistent.
Betrachten Sie als Beispiel eine Punktebene mit einem Rendering, das nach dem Attribut "Latitude" aufsteigend sortiert ist. Die nördlicheren Punkte werden auf südlicheren Punkten gerendert. Der Punktcluster-Renderer verfügt über kein Latitude-Attribut für seine neuen Funktionen, erbt jedoch einen gewissen Anschein dieser Reihenfolge von der Quelle. Es kann Fälle geben, in denen ein südlicherer Cluster aufgrund der Reihenfolge der ursprünglichen Punkte auf einem nördlicheren Cluster gerendert wird.
quelle