Virtuelle Layer bieten die zusätzliche Möglichkeit verschiedene Layer miteinander zu verbinden (Spatial Join).
Spatial Joins sind sozusagen das "Salz in der Suppe" von räumlichen Datenbanken. Spatial Joins ermöglichen es, zwei oder mehr räumliche Datensätze in Abhängigkeit ihrer räumlichen Relation zu kombinieren. Der folgende Beitrag gibt einen kurzen Überblick über die Möglichkeiten, dies in QGIS mit virtuellen Layern zu realisieren. Für die folgenden Beispiele verwende ich Daten von Natural Earth (http://www.naturalearthdata.com/).
Als erstes wollen wir die Flughäfen in Deutschland aus den Layern "Airports" und "Countries" ermitteln. Der klassische Weg in QGIS wäre, eine Verschneidung der beiden Layer durchzuführen um einen neuen Layer zu erhalten, der beide Informationen enthält. Über einen Virtuellen Layer, lässt sich das ebenfalls sehr elegant in QGIS erledigen. Mit folgender Abfrage erhalten wir dann das Ergebnis:
mit dem Ergebnis (inklusive Russland!):
Spatial Joins sind sozusagen das "Salz in der Suppe" von räumlichen Datenbanken. Spatial Joins ermöglichen es, zwei oder mehr räumliche Datensätze in Abhängigkeit ihrer räumlichen Relation zu kombinieren. Der folgende Beitrag gibt einen kurzen Überblick über die Möglichkeiten, dies in QGIS mit virtuellen Layern zu realisieren. Für die folgenden Beispiele verwende ich Daten von Natural Earth (http://www.naturalearthdata.com/).
Als erstes wollen wir die Flughäfen in Deutschland aus den Layern "Airports" und "Countries" ermitteln. Der klassische Weg in QGIS wäre, eine Verschneidung der beiden Layer durchzuführen um einen neuen Layer zu erhalten, der beide Informationen enthält. Über einen Virtuellen Layer, lässt sich das ebenfalls sehr elegant in QGIS erledigen. Mit folgender Abfrage erhalten wir dann das Ergebnis:
select airports.geometry, airports.name, countries.name as Land from airports, countries where st_within(airports.geometry, countries.geometry) and countries.name='Germany'
Wollen wir nun andere Bedingungen für den virtuellen Layer verwenden, kann man einfach die Einstellungen des virtuellen Layers bearbeiten und die Abfrage entsprechend abändern.
In dem obigen Beispiel haben wir die Geometriebedingung ST_WITHIN verwendet. QGIS bietet für virtuelle Layer noch eine ganze Reihe andere geometrischer Bedingungen an, z.B.
So lassen sich einfach z.B. ein Dissolve (Auflösen) ausführen, in dem man folgenden SQL-Befehl verwendet:
select st_union(countries.geometry) from countries where countries.continent='Europe'