Si vous commencez a en avoir assez de gérer vos données sous forme de fichiers shape (le format date quand même des années 80!) et vous souhaitez une véritable base de données pour vos projets, en général vous vous orienterez vers PostGis. L’écart est grand et le saut pas facile à faire. Nous abordons dans cet article une autre solution, les bases de données SpatiaLite. Et le passage se fera en douceur…
La comparaison entre SpatiaLite et PostGis
Nous verrons dans cet article l’utilisation de SpatiaLite, un projet open source qui est multi-plateforme, simple et léger et offre pas mal de fonctionnalités. SpatiaLite est un système de gestion de bases de données spatiales (SGBD) construit sur le dessus de SQLite, un SGBD personnel léger. SpatiaLite (et donc, SQLite) sont construits sur une architecture individuelle, ce qui rend l’installation et la gestion pratiquement inexistantes. Le défaut est quil prend assez mal en charge les accès concurrents et qu’il ne supporte pas l’architecture client/serveur. Pour un SGBD plus complet, PostGIS est une option excellente dans le monde Open Source.
PostGIS offre beaucoup plus de fonctionnalités que SpatiaLite. On trouve dans la documentation de GeoDjango une comparaison des caractéristiques spatiales que chaque base de données prend en charge https://docs.djangoproject.com/en/dev/ref/contrib/gis/db-api/#compatibility-tables. Notez que ce n’est pas une comparaison directe des deux bases de données. Elle reflète plutôt ce que prend en charge GeoDjango. Cependant, elle donne une bonne idée des différences entre les deux.
Le choix entre PostGIS et Spatialite dépend étroitement des objectifs recherchés. Spatialite est probablement le meilleur choix lorsque vous avez besoin d’un base de données autonome ou embarquée, si vous souhaitez développer une application mobile ou de bureau. En plus, Spatialite peut être utilisée pour le développement d’une application web.
PostGIS est le meilleur choix si vous avez besoin de vitesses élevées en lecture/écriture, plusieurs utilisateurs simultanés sur la base de données, du clustering, ou des accès réseau.
Création d’une base de données spatiale
1. Ouvrez QGIS et ouvrez le panneau d’exploration. Si le panneau Parcourir manque, cliquez sur Vue | Panneaux et cochez la case Parcourir. Dans le panneau Parcourir, vous trouverez l’entrée de SpatiaLite
2. Créez une nouvelle base de données Spatialite en cliquant sur SpatiaLite et sélectionnant Créer une base de données…
3. Pointez sur le répertoire de votre choix et nommez la nouvelle base de données, par exemple BaseTest. Celle-ci apparaît maintenant sous la rubrique SpatiaLite.
Structure d’une base de données SpatiaLite
Maintenant que nous avons une nouvelle base de données SpatiaLite, nous allons étudier sa structure initiale et son contenu. Pour ce faire, nous allons utiliser le Gestionnaire de bases de données, un plugin QGIS intégré. DB Manager offre une interface graphique simple pour gérer les bases de données PostGIS et SpatiaLite . À l’aide du gestionnaire de base de données, nous serons en mesure d’afficher et de gérer notre base de données SpatiaLite. Nous allons commencer par nous familiariser avec l’interface du gestionnaire de bases de données.
1. cliquez sur Gestionnaire de Base de données sous Base de données pour l’ouvrir. L’interface de gestionnaire DB (tel qu’illustré dans la capture d’écran suivante) est composé de quatre parties : barre de menus, barre d’outils, arborescence et panneau d’information.
2. Cliquez sur SpatiaLite -> BaseTest pour voir l’arborescence avec toutes les tables, vues et infos générales sur la base que nous venons de créer.
Lorsqu’une nouvelle base de données SpatiaLite est créé, elle est automatiquement remplie avec plusieurs tables et vues. Ces tables et ces vues possèdent des documents utilisés par le SGBD pour gérer la structure et le fonctionnement de la base de données. Vous ne devez pas modifier ou supprimer ces tables ou vues, sauf si vous êtes absolument sûr de ce que vous faites.
Importer des données dans la base SpatiaLite
L’import de données dans une base de données SpatiaLite est très facile avec le Gestionnaire de base de données de QGis.
Vous pouvez importer directement les formats suivants:
• Shapefile (.shp)
• Dbase (.dbf)
• Text (.txt), Commas Separate Values (.csv), et feuilles Excel (.xls)
• Well-known Text (.wkt) et Well-known Binary (.wkb)
• PostGIS (.ewkt / .ewkb)
• Geography Markup Language (.gml)
• Keyhole Markup Language (.kml)
• Geometry JavaScript Object Notation (.geojson)
• Scalable Vector Graphics (.svg)
Voyons un exemple d’import d’un fichier shapefile.
1. Ouvrez le gestionnaire de base de données en cliquant sur Gestionnaire de base de données sous Base de données. Développez SpatiaLite et sélectionnez BaseTest.sqlite dans l’arborescence.
2. Allez au menu Table | Importer une couche ou un fichier pour ouvrir la boîte de dialogue Importer une couche vecteur, comme le montre la capture d’écran suivante.
3. Pointez sur le fichier shape à charger.
4. cliquez sur le bouton options de mise à jour pour charger le reste de la boîte de dialogue. Le Nom de la table de sortie sera rempli avec le nom du fichier shape en entrée.
5. Définissez les options suivantes :
° ° Sélectionnez SCR Source et entrez le code EPSG correspondant aux données en entrée.Si vous ne voulez pas changer le système de coordonnées lors de l’importation, il est inutile de définir le SCR cible, si non, vous rentrez le système de coordonnées souhaité pour les données dans la base. .
° ° Sélectionnez Créer un index spatial.
6. cliquez sur le bouton OK pour importer le fichier.
Une fois la table chargée, on peut l’afficher directement dans la fenêtre cartographique en double cliquant sur le nom de la table.
Dans l’article suivant nous allons voir comment charger une table non spatiale dans la base de données SpatiaLite, comment créer une table de toutes pièces et comment créer et gérer des vues.
Bonjour,
Serait-il possible de savoir comment trouver une base de données gratuite et l’importer dans QGIS et pour pouvoir la gérer par la suite ?
Merci
Désolé, je ne comprends pas la question. Un base de données sur quoi? Juste une base de données qui vous serve de test?
Bonjour, est-il possible de créer des groupes ou bien de déplacer nos groupes de couches directement dans la base de données? afin d’éviter d’avoir une grande quantité de couches qui se baladent dans la base de données. Merci
Vous pouvez créer des bases de données séparées, mais pour chaque base vous aurez toutes vos tables au même niveau. Para exemple vous pouvez avoir une base pour le réseau routier, une autre pour le réseau hydrologique, etc…
Merci M. Atilio Francois. SVP est-il possible de d’intégrer des données raster dans une base de données sur Qgis 2.8
Pour les bases Postgresql, depuis la version PostGIS 2.0 il est possible d’importer des couches raster avec la commande raster2pgsql.
Pour les bases Spatialite, il faut installer et utiliser rasterlite.
Ce qui ne MARCHE PAS sur MAC OS pour ce tuto et la parade !
(Rappel : MAC dont les bibliothèques Psyspatialites ont été chargées. http://www.forumsig.org/showthread.php/31388-Installation-de-pyspatialite-pour-Qspatialite-sur-Mac-OS-X)
1- On ne peut charger un fichier .shp avec le Gestionnaire de BDD (la géometrie ne se charge pas.) >> Mais on y arrive avec l’extension QspatiaLite. [On vérifie les colonnes ou une requête : select ‘Geometry’ FROM « ma_table ».
2- Pour l’afficher dans la fenêtre principale de Qgis : choisir une « option » (plusieurs fonctionnent…) au dessus du champ de requête dans la fenêtre de QspatiaLite.
Je teste la suite, en remerciant néanmoins l’auteur de ce Tuto windoïste.
Comment insérer une image rester dans postgis svp j’ai d énorme difficultés à se niveau…bsr à vous
Avez-vous consulté la documentation postgis?: https://postgis.net/docs/manual-2.4/using_raster_dataman.html#RT_Raster_Loader
Si oui, à quel niveau se situe votre blocage?
Bonjour, je voudrai être prévenu de tous les nouveaux article par mon mail.
Bonjour,
J’ai un petit problème lorsque je crée une nouvelle base de donnée. Il n’y a aucune arborescence qui se créer automatiquement comme indiqué plus haut. Je pense que c’est pour cela que ma base de donnée est inutilisable. J’ai la version 3.16.4 de QGis et 3.29.0 de SQLite.
Est ce que quelqu’un pourrait m’aider ?
Merci d’avance
Bonjour
Comme le titre de l’article l’indique, l’exemple a été fait avec une version 2.18
Dans la version 3 le gestionnaire de base de données n’affiche plus les tables « cachées » qui servent à la gestion. Mais elles sont bien créées. Si vous avez des problèmes avec une base, cela ne vient pas de là.
Pouvez-vous décrire votre problème?
Je travaille sur Intr@Geo et lorsque j’importe une base de données il me dit que la connexion à la base n’est pas possible. Je ne sais pas si vous pourrez m’aider pour cette partie mais merci de votre réponse. Je sais maintenant que je dois chercher le problème ailleurs