Innerhalb der #30DayMapChallenge hat eurojam eine coole Visualisierung veröffentlicht, nämlich abhängig von der Entfernung zu einem Punkt die Objekte einzufärben. Ich habe versucht, es nachzuvollziehen und … es klappt. Für alle, die diesbezüglich ein bisschen Hilfe brauchen, hier das Ganze mal etwas untersetzter. Ich habe die Gebäude des OSM-Projektes, hier der Layer “osm_buildings_test_2398” genutzt, dazu einen Layer “center” mit der Spalte “name” und dem Eintrag “Test”. Dann lautet der adaptierte und entscheidende String für die Füllfarbe:
color_hsv(scale_linear(distance( geometry(get_feature('center','name','Test')),$geometry),0,1000,100,0), 100, 100)
Aus dem Layer “center” wird also in der Spalte “name” der Eintrag “Test” gesucht. Zu dessen Geometrie (get_feature
)wird die Entfernung (distance
) zur aktuellen Gebäude-Geometrie ($geometry
) des Datensatzes der Gebäude ermittelt und entsprechend dem aktuellen Abstand eingefärbt (colore_hsv
) über einen linearen Farbverlauf (scale_linear
). So einfach … Alles klar? Schaut Euch die Syntax der Funktionen get_feature
, distance
, scale_linear
und color_hsv
an, es wird klarer, versprochen 😉
Um es einfacher nachvollziehen zu können, könnt Ihr gern mein Testprojekt [2] nutzen.
Danke eurojam, hier der Original-Tweet [1]:
[1] … https://twitter.com/27aea577f17d4c4/status/1591081607108390913
[2] … https://www.geoObserver.de/Download/QGIS_Center_Building_Demo1.zip
Wenn man das ganze dynamisch haben möchte, kann man statt des Punkt-Objektes z.B. auch die aktuelle Mausposition verwenden.
Statt “geometry(get_feature(…))” benutzt man dafür im Ausdruck “@canvas_cursor_point”.
Wichtig dabei, man muss in den Layereigenschaften (Reiter “Darstellung”) “Layeraktualisierungsintervall in Sekunden” anhaken (und z.B. auf 0,1 stellen).
Pingback: QGIS-Tipp: Haltestellen-Erreichbarkeit visualisiert | #geoObserver