[FOSSGIS-Talk] virtuelle Layer lässt QGIS einfrieren
Daniel Rüttimann
ruettimann at analygis.ch
Do Dez 23 10:46:06 CET 2021
Hallo Bernd
Besten Dank für den Hinweis bezüglich DB-Manager, es braucht etwas mehr Anpassungen als reines rüberkopieren des SQL-Codes, aber mit ein paar weiteren Anpassungen des Codes hat dieser Weg funktioniert.
Die Verwendung von virtuellen Layern hat bei mir auch mit dem Nightly Master nicht funktioniert.
Danke allen beteiligten für die Hilfe
Daniel
-----Ursprüngliche Nachricht-----
Von: FOSSGIS-Talk-Liste <fossgis-talk-liste-bounces at fossgis.de> Im Auftrag von bmarcus at giswana.de
Gesendet: Mittwoch, 22. Dezember 2021 13:52
An: fossgis-talk-liste at fossgis.de
Betreff: Re: [FOSSGIS-Talk] virtuelle Layer lässt QGIS einfrieren
Hallo Daniel,
bei Arbeiten mit Geodaten gebe ich SpatiaLite gegenüber GeoPackage den Vorzug. Für die Darstellung von Layern, deren Information über zwei oder mehr Tabellen verteilt sind, können Spatial-Views eingesetzt werden, um Informationen nicht redundant in der Datenbank vorzuhalten. Diese Views können wie herkömmliche Layer in QGIS eingebunden werden. Bei GeoPackage sind meine Erfahrungen mit Spatial-Views eher negativ geprägt, weshalb ich weitere Versuche seit längerem aufgegeben habe.
Da ich nicht weiß, ob für dich ein Umstieg auf ein anderes Datenformat in Frage kommen könnte, kannst du für die Lösung deines Problems auch den DB-Manager nehmen. Deine gpkg Datei sollte als angemeldete Datenbank vorliegen, so dass diese unter dem entsprechenden Datenbankanbieter aufgerufen werden kann. Im Editor kannst du den SQL-Code deines Virtuellen Layers nutzen. Evtl. musst du die Geometrie als "geom" und nicht als "geometry" ansprechen. Das Abfrageergebnis dann "als neuen Layer laden", mit Angabe zur eindeutigen Kennung und der Geometrie. Liegen 1:n Beziehungen vor und es gibt kein eindeutiges ID-Feld, ist die Option "Objektabfrage nach ID vermeiden" zu aktivieren.
Nach meiner Erfahrung sind diese Art Layer wesentlich performanter als Virtuelle Layer. Ob es eine Einschränkung in der nutzbaren Anzahl gibt, entzieht sich allerdings meiner Kenntnis. Im Gegensatz zu Virtuellen Layern konnte ich mit den Db-Layern auch komplexere Layer generieren, die auf mehr als nur zwei Tabellen zugriffen (hier mit QGIS 3.16.14).
Ein weiterer Vorteil besteht in der Möglichkeit des Speicherns des unterliegenden SQL-Codes, der durch erneuten Aufruf schnell an die jeweiligen Bedürfnisse angepasst werden kann, um evtl. einen weiteren Layer zu erstellen.
Allerdings würde ich es mit der Erstellung neuer Layer zu reinen Darstellungszwecken nicht übertreiben. Wenn es nur darum geht, vorgefilterte Informationen zu präsentieren, ist eine Regel basierte Darstellung die bessere Wahl. QGIS bietet darüber hinaus die Möglichkeit für ein und denselben Layer unterschiedliche Stile festzulegen.
Grüße vom anderen
Bernd
--
....................................................................
FOSSGIS Veranstaltungen
https://www.fossgis.de/news/fossgis-events/
FOSSGIS e.V, der Verein zur Förderung von Freier Software aus dem GIS-Bereich und Freier Geodaten!
https://www.fossgis.de/ https://twitter.com/FOSSGIS_Verein
____________________________________________________________________
FOSSGIS-Talk-Liste mailing list
FOSSGIS-Talk-Liste at fossgis.de
https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste
Mehr Informationen über die Mailingliste FOSSGIS-Talk-Liste