J'ai créé une base de données spatialite qui couvre plusieurs années de données sur la criminalité. Pour faciliter un scénario réel où je peux simplifier l'interaction pour un utilisateur en introduisant une vue qui limite simplement la durée ou quels types de crimes sont renvoyés, je veux savoir s'il est possible pour QGIS de lire cette vue comme elle serait toute autre table spatiale dans ma base de données. Le point ici est que, de toute évidence, je ne veux pas créer une table distincte pour chaque vue possible que je peux utiliser, et j'essaie de faire simple en n'exigeant pas que l'utilisateur connaisse la base de données et le SQL approprié pour sous-définir les données elles-mêmes. Un flux de travail similaire dans le monde ArcGIS peut créer des fichiers de couches distincts que l'utilisateur pourrait ouvrir dans ArcMap et accéder à la base de données (par exemple, SQL Server) et présenter uniquement l'ensemble de données limité.
J'ai créé une vue dans ma base de données, mais elle n'apparaît pas dans la liste des classes d'entités que je peux importer lorsque je me connecte à la base de données spatialite dans QGIS. Peut-être que les vues ne sont pas considérées comme spatiales? (C'est quelque chose que je vais examiner plus tard, mais je pensais l'avoir déjà fait; je ne me souviens tout simplement pas de la conclusion.) En tout cas, comment pourrait-on reproduire le type de flux de travail que je veux ou l'alternative ArcGIS similaire ?
la source
SELECT * FROM views_geometry_columns;
pour voir ce qui doit être inséré. Plus d'infos sur gaia-gis.it/spatialite-3.0.0-BETA/spatialite-cookbook/html/…Vous devrez peut-être également mettre un ID unique dans la vue, similaire à ce qui est expliqué ici: Dans PostGIS, est-il possible de créer une vue avec un ID unique?
la source
l'enregistrement de la vue dans geometry_columns de nos jours (année 2015) semble nécessiter un champ supplémentaire 'read_only' comme ceci:
la source
Pour SpatialLite 4.x, deux modifications à la réponse d'origine sont requises - l'ajout de la
read_only
colonne et la modification de toutes les valeurs insérées en minuscules. Le SQL mis à jour ressemblerait à ceci:Le
read_only
champ accepte 0 ou 1. (Voir le commentaire de Sandro Furieri dans Google Groupes pour plus de précisions.)Plus de détails sur ces changements et sur d'autres 4.x peuvent être trouvés sur le wiki de passage à 4.0 .
la source
NB: remplacer uniquement: nameOfView et geometryTable
la source