In unserem letzen QGIS Web-Seminar der FOSS Academy im Dezember 2020 zum Thema "Neues in QGIS 3.16" fragte ein Teilnehmer wie man sich drehende Symbole in QGIS erstellen kann. Das schauen wir uns heute in diesem Blog-Beitrag etwas genauer an.
Als Beispiel verwende ich einen einfachen Datensatz mit Punktdaten, in diesem Fall die drei Standorte der WhereGroup GmbH. Als Symbol verwenden wir das Logo der WhereGroup (SVG Symbol) und weisen es dem Thema über das Layergestaltungsfenster zu.
Die Drehung erreichen wir durch eine datendefinierte Übersteuerung der Drehungseigenschaft des Symbols. Hierzu klicken wir auf das kleine Viereck neben dem Drehwert und wählen Bearbeiten aus. Im Ausdruckseditor verwenden wir die Funktion:
second(now()) * 6
Dadurch erreichen wir, dass die Sekunden der jeweils aktuellen Zeit genommen werden und mit 6 multipliziert werden, so erhalten wir Werte zwischen 0 und 360°.
Anschließend müssen wir in den Layereigenschaften noch erreichen, dass der Layer ständig neu gezeichnet wird, damit die Drehung sichtbar wird.
Hierzu gehen wir in die Layereigenschaften (Doppelklick oder rechte Maustaste->Eigenschaften...) und dort in den Reiter "Darstellung". Hier können wir das Layeraktualisierungsintervall aktivieren und setzen es auf 0,5 Sekunden. Anschließend sollte sich unser Logo bereits drehen.
Dann erstellen wir uns noch ein zweites Symbol, bei dem wir die Farbe über die Zeit steuern. Dazu klicken wir auf das Plus-Zeichen neben den Symbolen und wählen ein einfachen Kreis, setzen ihn in den Hintergrund, erhöhen den Radius auf 12 und steuern die Farbe über einen Ausdruck. Dazu klicken wir auf das Kästchen für Datendefinierte Übersteuerung->Bearbeiten und verwenden folgenden Ausdruck:
color_hsva(second(now())*6, 75,75,125)
Hiermit erstellen wir einen Farbwert im HSVA Farbmodell. Dabei handelt es sich um vier Werte, der erste gibt die Position im Farbkreis mit einem Wert von 0 bis 360° an. Diesen Wert steuern wir mit der Zeit wie bei der Drehung. Die weiteren Werte geben Sättigung, Helligkeit und Transparenz an.
Das folgende Video zeigt noch mal alle Arbeitsschritte hintereinander: