Ich versuche, die QGIS Atlas-Tools zu verwenden, um Schüler-Scattermaps zu erstellen, d. H. Anzeige der Schule und der Schüler, die diese Schule besuchen, für 215 Schulen.
Die SCHNUM
Schulschicht ist die Deckungsschicht und wird vom Wert (Schulnummer) bestimmt. Das funktioniert gut, das heißt, es werden die Seiten korrekt angesteuert.
Wie kann ich jedoch nur Features aus anderen Layern anzeigen, in diesem Fall dem Schülerpunkt-Layer, die dem entsprechenden SCHNUM
Wert für das aktuelle Feature im Coverage-Layer entsprechen?
Ich möchte auch die Coverage-Ebene (Schulen) auf "versteckt" schalten und dieselbe Technik verwenden, um nur die aktuelle Schule aus einer duplizierten Schulebene anzuzeigen.
Hier ist eine Präsentation verfügbar , die auf die Verwendung einer Layer-Rendering-Regeleinstellung mit verweist $atlasfeatureid
, aber ich kann nicht herausfinden, wie das funktioniert.
Ich habe auch diese Bug-Tracker-Seite gefunden , die diese Funktion zeigt, aber ich kann sie auch nicht dazu bringen, meine Daten zu bearbeiten:
Antworten:
In der Tat müssen Sie regelbasierte Symbologie verwenden, um das zu erreichen, was Sie wollen.
Sie müssen eine Regel für das erstellen, was Sie anzeigen möchten, und eine ELSE-Regel für alle anderen.
Deaktivieren Sie in der ELSE-Regel das Kontrollkästchen für das Symbol, um es unsichtbar zu machen.
Blenden Sie andere Funktionen in der Coverage-Ebene aus
Die Regel, nach der nur die aktuelle Atlasfunktion angezeigt wird, kann die folgende sein:
Anmerkung : Ich glaube, dass die Variable @atlas_featureid eine 2.12-Syntax ist. Ich denke, dass Sie in 2.8.x eine Funktion mit dem Namen $ atlas_featureid verwenden müssen.
Ausblenden von Funktionen außerhalb der aktuellen Atlasfunktion
Das Rezept ist das gleiche wie zuvor, eine Regel zum Ausblenden von Features und eine zum Anzeigen.
Für Ihre spezielle Frage scheinen Sie ein gemeinsames Attribut namens SCHNUM zu haben. In diesem Fall kann die Regel sein:
in Ihrem speziellen Fall:
Beachten Sie den Unterschied zwischen beiden SCHNUM. Das erste, in doppelten Anführungszeichen, stellt den Wert jedes aktuellen Layer-Features des Felds dar, in dem der Schulcode gespeichert ist. Das zweite ist in einfachen Anführungszeichen eine Zeichenfolge mit dem Namen der Deckungsschicht, in der der Schulcode gespeichert ist.
Hinweis : Auch hier halte ich die Variable @atlas_feature für eine "neue" Sache, und in 2.8.x müssen Sie die Funktion $ atlas_feature verwenden
quelle