Ich habe eine Spatialite-Datenbank erstellt, die mehrere Jahre Kriminalitätsdaten umfasst. Um ein reales Szenario zu vereinfachen, in dem ich die Interaktion für einen Benutzer vereinfachen kann, indem ich eine Ansicht einführe, die lediglich die Zeitspanne begrenzt oder angibt, welche Arten von Straftaten zurückgegeben werden, möchte ich wissen, ob QGIS diese Ansicht so lesen kann würde jede andere räumliche Tabelle in meiner Datenbank. Der Punkt hier ist, dass ich offensichtlich nicht für jede mögliche Ansicht, die ich verwenden möchte, eine separate Tabelle erstellen möchte, und ich versuche es einfach zu machen, indem der Benutzer nicht die Datenbank und das entsprechende SQL kennen muss, um die Daten selbst zu unterteilen. Ein ähnlicher Workflow in der ArcGIS-Welt besteht möglicherweise darin, separate Layer-Dateien zu erstellen, die der Benutzer in ArcMap öffnen kann, die auf die Datenbank zugreifen (z. B. SQL Server) und nur den begrenzten Datensatz anzeigen.
Ich habe eine Ansicht in meiner Datenbank erstellt, diese wird jedoch nicht in der Liste der Feature-Classes angezeigt, die ich importieren kann, wenn ich eine Verbindung zur Spatialite-Datenbank in QGIS herstelle. Vielleicht werden Ansichten nicht als räumlich betrachtet? (Dies ist etwas, worauf ich später noch eingehen werde, aber ich dachte, ich hätte es bereits getan. Ich erinnere mich nur nicht an die Schlussfolgerung.) Wie könnte man auf jeden Fall den gewünschten Workflow oder die ähnliche ArcGIS-Alternative replizieren? ?
quelle
SELECT * FROM views_geometry_columns;
diese Option, um zu sehen, was eingefügt werden muss. Weitere Informationen unter gaia-gis.it/spatialite-3.0.0-BETA/spatialite-cookbook/html/…Möglicherweise müssen Sie auch eine eindeutige ID in die Ansicht einfügen, ähnlich wie hier beschrieben: Ist es in PostGIS möglich, eine Ansicht mit einer eindeutigen ID zu erstellen?
quelle
Das Registrieren der Ansicht in geometrischen Spalten heutzutage (Jahr 2015) scheint ein zusätzliches Feld 'read_only' zu erfordern, wie folgt:
quelle
Für SpatialLite 4.x sind zwei Änderungen an der ursprünglichen Antwort erforderlich - das Hinzufügen der
read_only
Spalte und das Ändern aller eingefügten Werte in Kleinbuchstaben. Das aktualisierte SQL würde folgendermaßen aussehen:Das
read_only
Feld akzeptiert entweder 0 oder 1. (Weitere Erläuterungen finden Sie in Sandro Furieris Kommentar in Google Groups .)Weitere Details zu diesen und anderen 4.x-Änderungen finden Sie im Wiki zum Umschalten auf 4.0 .
quelle
NB: nur ersetzen: nameOfView und geometrTabelle
quelle