.

Formats de données gérés

QGIS utilise la bibliothèque OGR pour lire et écrire des données vectorielles incluant les formats ESRI shapefiles, MapInfo et MicroStation; les bases de données AutoCAD DXF, PostGIS, SpatiaLite, Oracle Spatial et MS SQL Spatial et de nombreux autres formats. Les données vectorielles GRASS et PostgreSQL sont gérées par des extensions natives de QGIS. Les données vectorielles peuvent également être lues depuis des archives zip ou gzip. A ce jour, 69 formats de données vectorielles sont gérés par la bibliothèque OGR (voir OGR-SOFTWARE-SUITE dans Bibliographie). La liste complète est disponible sur http://www.gdal.org/ogr/ogr_formats.html.

Note

Tous les formats listés ne fonctionnent par dans QGIS, pour différentes raisons. Par exemple, certains requièrent des bibliothèques externes payantes ou encore lorsque l’installation de QDAL/OGR n’a pas été effectuée correctement sur votre système pour le format demandé. Seuls les formats qui ont été testés apparaissent dans la liste des types de fichiers proposés au moment de charger un vecteur dans QGIS. Les autres formats peuvent être chargés en sélectionnant *.*.

Le travail sur des couches vectorielles GRASS est décrit dans la Section Intégration du SIG GRASS.

Cette section décrit comment travailler avec les formats les plus communs : les shapefiles ESRI, les couches PostGIS, SpatiaLite et les données au format texte CSV. Beaucoup de fonctionnalités de QGIS fonctionnent, de par sa conception, de la même manière quel que soit le format vecteur des données sources. Il s’agit des fonctionnalités d’identification, de sélection, d’étiquetage et de gestion des attributs.

Shapefiles ESRI

Le format de fichier vecteur standard utilisé par QGIS est le shapefile ESRI. Il est géré à travers la bibliothèque OGR Simple Feature Library (http://www.gdal.org/ogr/).

Un shapefile est en réalité composé de plusieurs fichiers. Les trois suivants sont requis :

  1. .shp fichier contenant la géométrie des entités.

  2. .dbf fichier contenant les attributs au format dBase.

  3. .shx fichier d’index.

Un shapefile inclus également un fichier ayant l’extension .prj qui contient les informations sur le système de coordonnées. Bien que ces informations soient très utiles elles ne sont pas obligatoires. Il peut y avoir encore d’autres fichiers associés aux données shapefile. Si vous souhaitez avoir plus de détails, nous vous recommandons de vous reporter aux spécifications techniques du format shapefile, qui se trouve notamment sur http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf.

Charger un Shapefile

Pour charger un shapefile, lancez QGIS et cliquez sur le bouton mActionAddOgrLayer Ajouter une couche vecteur ou pressez les touches Ctrl+Shift+V. Une nouvelle fenêtre apparaîtra (voir figure_vector_1).

Figure Vector 1:

../../../_images/addvectorlayerdialog.png

Fenêtre d’ajout d’une couche vectorielle nix

Cliquez sur radiobuttonon Fichier puis sur le bouton [Parcourir]. L’outil ouvre alors une fenêtre de dialogue standard (voir figure_vector_2) qui vous permet de naviguer dans les répertoires et les fichiers, et charger le shapefile ou tout autre format géré. La boîte de sélection Fichiers de type selectstring vous permet de présélectionner un format de fichier géré par OGR.

Si vous le souhaitez, vous pouvez également sélectionner le type de codage du shapefile.

Figure Vector 2:

../../../_images/shapefileopendialog.png

Fenêtre d’ouverture de données vectorielles dont le format est géré par OGR nix

Sélectionner un shapefile dans la liste puis cliquer sur [Ouvrir] le charge dans QGIS. Figure_vector_3 montre QGIS après avoir chargé le fichier alaska.shp.

Figure Vector 3:

../../../_images/shapefileloaded.png

Interface de QGIS après avoir chargé le Shapefile de l’Alaska nix

Astuce

Couleur des couches

Quand vous ajoutez une couche sur une carte, une couleur aléatoire lui est assignée. En ajoutant plusieurs couches en une fois, différentes couleurs sont assignées à chacune des couches.

Une fois le shapefile chargé, vous pouvez zoomer dessus en utilisant les outils de navigation sur la carte. Pour changer la symbologie d’une couche, ouvrez la fenêtre Propriétés de la Couche en double-cliquant sur le nom de la couche ou en faisant un clic droit sur son nom dans la légende et en choisissant Propriétés dans le menu qui apparait. Pour plus de détails sur les paramètres de la symbologie des couches vectorielles, référez-vous à la section Onglet Style.

Astuce

Charger une couche et un projet depuis un lecteur externe sous OS X

Sous OS X, les lecteurs portables qui sont montés à côté du disque dur primaire n’apparaissent pas dans Fichier ‣ Ouvrir un Projet. Nous travaillons sur le support des fenêtres d’ouverture/enregistrement natives d’OS X pour résoudre ce problème. Pour y pallier, vous pouvez taper /Volumes dans la boîte Nom de fichier et appuyer sur Entrée. Vous pouvez ensuite parcourir les lecteurs externes et réseaux montés.

Améliorer les performances d’affichage des Shapefiles

Pour améliorer les performances de dessin d’un shapefile, vous pouvez créer un index spatial. Un index spatial améliorera à la fois la vitesse d’exécution du zoom et du déplacement panoramique. Les index spatiaux utilisés par QGIS ont une extension .qix.

Voici les étapes de création d’un index spatial :

  • Chargez un shapefile en cliquant sur le bouton mActionAddOgrLayer Ajouter une couche vecteur de la barre d’outils ou en pressant les touches Ctrl+Shift+V.

  • Ouvrez la fenêtre Propriétés de la Couche en double-cliquant sur le nom de la couche dans la légende ou en faisant un clic droit et en choisissant Propriétés dans le menu qui apparait.

  • Dans l’onglet Général, cliquez sur le bouton [Créer un index spatial].

Problème de chargement de fichier .prj

Si vous ouvrez un shapefile disposant d’un fichier .prj et que QGIS ne parvient pas à lire le système de coordonnées de référence, vous allez devoir le définir manuellement via l’onglet Général de la fenêtre de Propriétés de la Couche en cliquant sur le bouton [Specifier...]. Cela est dû au fait que ce fichier .prj ne fournit pas les paramètres complets de la projection requis par QGIS et listés dans la fenêtre SCR.

C’est pour la même raison que lorsque vous créez un nouveau shapefile avec QGIS, deux fichiers de projection différents sont créés. Un fichier .prj contenant un nombre limité de paramètres, compatible avec les logiciels ESRI et un fichier .qpj, fournissant la totalité des paramètres du SCR utilisé. Chaque fois que QGIS trouve un fichier .qpj, il l’utilisera à la place du fichier .prj.

Charger une couche MapInfo

mActionAddOgrLayer Pour charger une couche MapInfo, cliquez sur le bouton mActionAddOgrLayer Ajouter une couche vecteur de la barre d’outils ou tapez Ctrl+Shift+V, changez le filtre de Type de fichiers selectstring pour ‘Mapinfo File [OGR] (*.mif *.tab *.MIF *.TAB)’ et sélectionnez la couche MapInfo que vous souhaitez charger.

Charger une couverture ArcInfo binaire

mActionAddOgrLayer Pour charger une couverture binaire ArcInfo, cliquez sur le bouton mActionAddOgrLayer Ajouter une couche vecteur ou tapez Ctrl+Shift+V pour ouvrir la fenêtre correspondante. Sélectionnez radiobuttonon Répertoire comme Type de source. Sélectionnez ‘ArcInfo Binary Coverage’ dans le filtre Type selectstring. Naviguez jusqu’au dossier contenant vos fichiers puis choisissez-les.

De manière similaire vous pouvez directement charger les fichiers vecteurs au format UK National Transfer ainsi que le format TIGER brut de l’US Census Bureau.

Fichiers de Texte Délimité

Les données séparées par des tabulations sont utilisées très couramment pour leur simplicité et leur lisibilité, les données pouvant être lues et modifiées dans un éditeur de texte basique. Les données séparées par un délimiteur sont écrites par lignes dans lesquelles les données sont séparées par un caractère défini (virgule, point-virgule, espace, etc) La première ligne contient généralement le nom des colonnes. Le CSV (Comma Separated Values = Données Séparées par une Virgule) est très courant.

De tels fichiers de données peuvent aussi contenir des informations de positionnement dans deux formes différentes :

  • Avec des coordonnées de points en colonnes séparées

  • Avec une représentation well-known text (WKT) de la géométrie

QGIS vous permet de charger un fichier texte délimité en tant que couche ou simple table. Mais il faut d’abord vérifier les points suivants :

  1. Le fichier doit avoir une ligne d’entête délimitée avec les noms des champs. Il doit s’agir de la première ligne du fichier.

  2. La ligne d’entête doit contenir un ou plusieurs champs stockant la géométrie. Ils peuvent porter n’importe quel nom.

  3. Les coordonnées X et Y doivent être de type numérique (si la géométrie est définie par des coordonnées). Le système de coordonnées n’est pas important.

Comme exemple de fichier texte valide, nous pouvons importer le fichier point d’élévation elevp.csv fourni avec le jeu de données échantillon de QGIS (voir section Échantillon de données) :

X;Y;ELEV
-300120;7689960;13
-654360;7562040;52
1640;7512840;3
[...]

Notons les points suivants à propos du fichier texte :

  1. Le fichier texte d’exemple utilise le ; comme délimiteur. N’importe quel caractère peut être utilisé comme délimiteur de champ.

  2. La première ligne est la ligne d’entête. Elle contient les champs X, Y et ELEV.

  3. Aucun guillemet (") n’est utilisé pour délimiter les champs textes.

  4. Les coordonnées X sont stockées dans le champ X.

  5. Les coordonnées Y sont stockées dans le champ Y.

Charger un fichier texte délimité

Appuyez sur l’icône delimited_text Ajouter une couche de texte délimité de la barre d’outils Contrôle des couches pour ouvrir la boîte de dialogue Créer une couche depuis un fichier à texte délimité comme montré dans la figure figure_delimited_text_1.

Figure Delimited Text 1:

../../../_images/delimited_text_dialog.png

La fenêtre d’import de texte délimité nix

Sélectionnez d’abord le fichier à importer (par exemple, qgis_sample_data/csv/elevp.csv) en appuyant sur le bouton [Parcourir...]. Une fois le fichier sélectionné, QGIS tente d’analyser le fichier en utilisant le dernier délimiteur utilisé. Afin que QGIS puisse analyser correctement le fichier, il est important de sélectionner le bon délimiteur. Vous pouvez spécifier un délimiteur en cochant radiobuttonon délimiteurs personnalisés, ou en cochant radiobuttonon expression régulière et en saisissant un texte dans le champ Expression. Par exemple, pour changer et utiliser le délimiteur tabulation, utilisez \t (c’est l’expression en vigueur pour indiquer le caractère tabulation).

Une fois le fichier analysé, procédez à la Définition de la géométrie en sélectionnant radiobuttononPoint et renseignez les champs X et Y à l’aide des listes déroulantes correspondantes. Si les coordonnées sont définies en degrés/minutes/secondes, cochez la case checkbox Coordonnées DMS.

Enfin, choisissez un nom de couche (par exemple, elevp) comme montré dans figure_delimited_text_1. Pour ajouter la couche à la carte, appuyez sur [OK]. Le fichier texte délimité se comporte maintenant dans QGIS comme n’importe quelle autre couche de la carte.

Il y a aussi une option qui vous aide à supprimer les espaces de début et de fin des champs, à savoir checkbox Réduire les champs. Vous pouvez aussi checkbox Ignorer les champs vides dans chaque enregistrement ou si nécessaire, définir la checkbox Virgule en séparateur décimal.

Si l’information spatiale est représentée en WKT, activez l’option radiobuttonon Well Known Text et sélectionnez le champ contenant la définition WKT des objets point, ligne ou polygone. Si le fichier ne contient pas d’information spatiale, cochez radiobuttonon Pas de géométrie (juste la table) et le fichier sera chargé comme une table ordinaire.

En complément, vous pouvez activer :

  • checkbox Index spatial pour améliorer les performances d’affichage et de sélection spatiale des entités.

  • checkbox Index des sous-ensembles.

  • checkbox Surveiller le fichier pour surveiller les changements apportés au fichier par d’autres applications pendant que QGIS tourne.

Données OpenStreetMap

Ces dernières années, le projet OpenStreetMap (OSM) a gagné en popularité, car dans beaucoup de pays, aucune donnée géographique sous licence libre, telle que par exemple le réseau routier, n’est disponible. L’objectif du projet OSM est de créer une base de données géographiques libre sur le monde entier et qui est éditable par tous à partir de données GPS, de photographies aériennes ou tout simplement des connaissances locales du terrain. Pour soutenir ce projet, QGIS fournit une extension qui permet aux utilisateurs de travailler avec les données OSM.

Charger des vecteurs OpenStreetMap

QGIS intègre nativement des fonctions d’import de données OpenStreetMap.

  • Pour vous connecter au serveur OSM et télécharger des données, ouvrez le menu Vecteur ‣ OpenStreetMap ‣ Télécharger des données OSM.... Vous pouvez ignorer cette étape si vous avez déjà obtenu un fichier XML .osm à l’aide du logiciel JOSM, de l’Overpass API ou de toute autre source.

  • Le menu Vecteur ‣ OpenStreetMap ‣ Importer la topologie depuis un XML... convertira votre fichier .osm en une base de données Spatialite, et créera la connexion à la base.

  • Le menu Vecteur ‣ OpenStreetMap ‣ Exporter la topologie vers SpatiaLite vous permet ensuite de vous connecter à la base de données, sélectionner le type de données que vous souhaitez (points, lignes, polygones) et choisir les tags OSM à importer. Ceci crée une couche géométrique SpatiaLite que vous pouvez par la suite ajouter à votre projet en cliquant sur le bouton mActionAddSpatiaLiteLayer Ajouter une couche SpatiaLite de la barre d’outils ou en sélectionnant l’option mActionAddSpatiaLiteLayer Ajouter une couche SpatiaLite... du menu Couche (voir la Section Couches SpatiaLite).

Couches PostGIS

Les couches PostGIS sont stockées dans une base de données PostgreSQL. Les avantages de PostGIS sont les possibilités d’indexation spatiale, de filtre et de requête qu’il fournit. En utilisant PostGIS, les fonctions vecteur telles que la sélection ou l’identification fonctionnent avec plus de précision qu’avec les couches OGR dans QGIS.

Créer une connexion enregistrée

mActionAddPostgisLayer La première fois que vous utilisez des données PostGIS, vous devez créer une connexion vers la base PostgreSQL qui contient les données. Cliquez tout d’abord sur le bouton mActionAddPostgisLayer Ajouter une couche PostGIS de la barre d’outils ou sélectionnez l’option mActionAddPostgisLayer Ajouter une couche PostGIS... du menu Couche ou encore, tapez Ctrl+Shift+D. Vous pouvez aussi ouvrir la fenêtre Ajouter une couche vecteur et sélectionnez radiobuttonon Base de données. La fenêtre Ajouter une ou plusieurs tables PostGIS apparaît. Pour accéder au gestionnaire de connexion, cliquez sur le bouton [Nouveau] pour faire apparaitre la fenêtre Créer une nouvelle connexion PostGIS. Les paramètres requis pour la connexion sont :

  • Nom : Un nom pour cette connexion. Il peut être identique à Base de données.

  • Service : Paramètre de service à utiliser en alternative à l’hôte et le port (et potentiellement la base de données). Il peut être défini dans pg_service.conf.

  • Hôte : Nom pour l’hôte de la base de données. Il doit s’agir d’un nom existant, car il sera utilisé pour ouvrir une connexion Telnet ou interroger l’hôte. Si la base de données est sur le même ordinateur que QGIS, mettez simplement ‘localhost’.

  • Port : numéro de port que le serveur de base de données PostgreSQL écoute. Le port par défaut est 5432.

  • Base de données : nom de la base de données.

  • Mode SSL : Comment sera négociée la connexion SSL avec le serveur. Notez qu’une importante accélération du rendu des couches PostGIS peut être obtenue en désactivant le SSL dans l’éditeur de connexion. Les options suivantes sont proposées :

    • Désactive : Essaye uniquement une connexion SSL non cryptée.

    • Permet : Essaye une connexion non-SSL. En cas d’échec, essaye une connexion SSL.

    • Préfère (par défaut) : Essaye une connexion SSL. En cas d’échec, essaye une connexion non-SSL.

    • Requiert : Essaye uniquement une connexion SSL.

  • Nom d’utilisateur : Nom d’utilisateur utilisé pour se connecter à la base de données.

  • Mot de passe : mot de passe associé au Nom d’utilisateur pour se connecter à la base de données.

Vous pouvez également activer les options suivantes :

  • checkbox Enregistrer le nom d’utilisateur

  • checkbox Enregistrer le mot de passe

  • checkbox Ne regarder que dans la table geometry_columns

  • checkbox Ne pas résoudre le type pour les géométries non restreintes (GEOMETRY)

  • checkbox Ne regarder que dans le schéma ‘public’

  • checkbox Lister les tables sans géométrie

  • checkbox Utiliser la table des métadonnées estimées

Une fois que tous les paramètres et les options sont définis, vous pouvez tester la connexion en cliquant sur le bouton [Test la connexion].

Charger une couche PostGIS

mActionAddPostgisLayer Une fois qu’une ou plusieurs connexions sont définies, vous pouvez charger des couches de la base de données PostgreSQL. Bien sûr, cela nécessite d’avoir des données dans PostgreSQL. Référez-vous à la section Importer des données dans PostgreSQL pour plus de détails concernant l’importation de données dans la base de données.

Pour charger une couche PostGIS, suivez ces étapes :

  • Si la fenêtre Ajouter une ou plusieurs tables PostGIS n’est pas ouverte, cliquez sur le bouton mActionAddPostgisLayer Ajouter une couche PostGIS... depuis le menu Couche ou tapez Ctrl+Shift+D pour afficher la fenêtre.

  • Choisissez la connexion dans la liste déroulante et cliquez sur [Connecter].

  • Cochez ou décochez selon votre besoin checkbox Lister les tables sans géométrie

  • Utilisez si besoin des checkbox Options de recherche pour définir quelles entités charger ou utilisez le bouton [Construire une requête] pour ouvrir la fenêtre Construction de requête.

  • Trouvez la ou les couches que vous souhaitez ajouter dans la liste des couches disponibles.

  • Sélectionnez-la en cliquant dessus. Vous pouvez sélectionner plusieurs couches en maintenant la touche Shift enfoncée quand vous cliquez. Référez-vous à la section Constructeur de requête pour plus d’informations sur l’utilisation du Constructeur de requête de PostgreSQL pour mieux définir la couche.

  • Cliquez sur le bouton [Ajouter] pour ajouter la couche à la carte.

Astuce

Couches PostGIS

Normalement, une couche PostGIS est définie par une entrée dans la table geometry_columns. Depuis la version 0.9.0, QGIS peut charger des couches qui n’ont pas d’entrée dans la table geometry_columns. Ceci concerne aussi bien les tables que les vues. Définir une vue spatiale fournit un moyen puissant pour visualiser vos données. Référez-vous à votre manuel PostgreSQL pour plus d’informations sur la création des vues.

Quelques éléments de détail à propos des couches PostgreSQL

Cette section fournit quelques détails sur la manière dont QGIS accède aux couches PostgreSQL. La plupart du temps, QGIS devrait simplement fournir une liste des tables de la base de données qui peuvent être chargées et il les chargera à la demande. Cependant, si vous avez des problèmes pour charger une table PostgreSQL dans QGIS, les informations données ci-dessous peuvent vous aider à comprendre les messages de QGIS et vous donner une indication sur comment changer la table ou la vue PostgreSQL pour qu’elle se charge dans QGIS.

QGIS demande que les couches PostgreSQL aient un champ pouvant être utilisé comme clé unique pour la couche. Pour les tables, cela signifie qu’elles doivent avoir une clé primaire ou un champ ayant une contrainte d’unicité. De plus, QGIS impose que cette colonne soit de type int4 (un entier de 4 octets). Alternativement, la colonne ctid peut être utilisée comme clé primaire. Si une table ne respecte pas ces conditions, le champ oid sera utilisé à la place. Les performances seront améliorées si le champ est indexé (notez que les clés primaires sont automatiquement indexées dans PostgreSQL).

Si la couche PostgreSQL est une vue, les mêmes conditions s’appliquent, mais les vues n’ont pas de clé primaire ou de champ ayant une contrainte d’unicité. Vous devez donc définir une clé primaire (de type entier) avant de charger la vue. Si aucun champ ne convient, QGIS ne chargera pas la vue. Si cela arrive, la solution est de modifier la vue de sorte qu’elle inclut un champ qui convient (de type entier et qui soit une clé primaire ou ayant une contrainte d’unicité, de préférence indexé).

QGIS offre une case à cocher Sélectionner par identifiant qui est activée par défaut. Cette option permet de récupérer les identifiants sans les attributs, ce qui est plus rapide dans la plupart des cas. Ça peut avoir du sens de désactiver cette option lorsque vous utilisez des vues coûteuses.

Astuce

Sauvegarde d’une base de données PostGIS ayant des couches sauvées par QGIS

Si vous voulez faire une sauvegarde de votre base de données PostGIS en utilisant les commandes pg_dump et pg_restore alors les styles de la couche par défaut qui sont sauvés par QGIS ne pourront pas être restaurés. Vous devez utiliser DOCUMENT comme option XML et la restauration fonctionnera.

Importer des données dans PostgreSQL

Différents outils, notamment l’extension SPIT ou les outils en ligne de commande comme sh2pgsql ou ogr2ogr, permettent d’importer les données dans une base de données PostgreSQL/PostGIS.

DB Manager

QGIS est distribué avec une extension nommée icon_dbmanager DB Manager. Elle peut être utilisée pour charger des shapefile et d’autres formats de données, et inclut le support des schémas. Voir section Extension DB Manager pour plus d’informations.

shp2pgsql

PostGIS intègre un utilitaire nommé shp2pgsql qui peut être utilisé pour importer des shapefiles dans une base de données PostgreSQL/PostGIS. Par exemple, pour importer un shapefile nommé lakes.shp dans une base PostgreSQL nommé gis_data, utilisez la commande suivante :

shp2pgsql -s 2964 lakes.shp lakes_new | psql gis_data

Ceci crée une nouvelle couche nommée lakes_new dans la base de données gis_data. La nouvelle couche aura l’identifiant de référence spatiale (SRID) 2964. Référez-vous à la section Utiliser les projections pour plus d’informations sur les systèmes de référence spatiale et les projections.

Astuce

Exporter des jeux de données depuis PostGIS

De la même manière que l’outil d’importation shp2pgsql, il y a également un outil d’exportation de jeux de données PostGIS en shapefile : pgsql2shp. Cet outil est inclus dans la distribution de PostGIS.

ogr2ogr

En plus de shp2pgsql et DB Manager, un autre outil est fourni pour importer des données géographiques dans PostGIS : ogr2ogr. Il est inclus dans GDAL.

Pour importer un shapefile dans PostGIS, lancez la commande suivante :

ogr2ogr -f "PostgreSQL" PG:"dbname=postgis host=myhost.de user=postgres
password=topsecret" alaska.shp

Ceci va importer le shapefile alaska.shp dans la base de données PostGIS nommée postgis en utilisant l’utilisateur postgres avec le mot de passe topsecret sur l’hôte myhost.de.

Notez qu’OGR doit être compilé avec PostgreSQL pour gérer PostGIS. Vous pouvez le vérifier en tapant (sous nix):

ogrinfo --formats | grep -i post

Si vous préférez utiliser la commande COPY de PostgreSQL au lieu de la méthode INSERT INTO par défaut, vous pouvez exporter la variable d’environnement suivante (au moins sur nix et osx):

export PG_USE_COPY=YES

ogr2ogr ne crée pas d’index spatial comme le fait shp2pgsl. Vous devez donc effectuer une étape supplémentaire en le créant manuellement avec la commande SQL classique CREATE INDEX (comme détaillé dans la section suivante Améliorer les performances).

Améliorer les performances

Récupérer des entités depuis une base de données PostgreSQL peut être long, surtout par un réseau. Vous pouvez améliorer les performances d’affichage de couches PostgreSQL en vous assurant qu’un index spatial PostGIS existe pour chaque couche dans la base de données. PostGIS gère la création d’un index index GiST (Generalized Search Tree) pour accélérer les recherches spatiales sur les données (les informations sur l’index GiST sont issues de la documentation de PostGIS disponible sur http://postgis.refractions.net).

La syntaxe pour créer un index GiST est la suivante :

CREATE INDEX [indexname] ON [tablename]
  USING GIST ( [geometryfield] GIST_GEOMETRY_OPS );

Notez que pour de grandes tables, créer un index peut prendre du temps. Une fois cet index créé, vous devriez faire une VACUUM ANALYZE. Référez-vous à la documentation de PostGIS (POSTGIS-PROJECT Bibliographie) pour plus d’informations.

Voici un exemple de création d’un index GiST :

gsherman@madison:~/current$ psql gis_data
Welcome to psql 8.3.0, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

gis_data=# CREATE INDEX sidx_alaska_lakes ON alaska_lakes
gis_data-# USING GIST (the_geom GIST_GEOMETRY_OPS);
CREATE INDEX
gis_data=# VACUUM ANALYZE alaska_lakes;
VACUUM
gis_data=# \q
gsherman@madison:~/current$

Couches vectorielles dépassant les 180° de longitude

Beaucoup de logiciels de SIG ne traitent pas les cartes vecteurs ayant un système de référence géographique (en lat/lon) dépassant la ligne des 180 degrés de longitude (http://postgis.refractions.net/documentation/manual-2.0/ST_Shift_Longitude.html). Il en résulte que sous QGIS, pour une telle carte, on verra deux emplacements distincts et éloignés qui devraient être proches l’un de l’autre. Sur Figure_vector_4, le petit point tout à gauche de la carte (Chatham Island) devrait être dans la grille, à droite des îles principales de Nouvelle-Zélande.

Figure Vector 4:

../../../_images/vectorNotWrapping.png

Carte en lat/lon dépassant la ligne des 180° longitude nix

Une solution est de transformer les valeurs longitudinales en utilisant PostGIS et la fonction ST_Shift_Longitude. Cette fonction lit chaque point/sommet de chacune des entités dans une géométrie et si la coordonnée de longitude est inférieure à 0°, elle lui ajoute 360°. Le résultat est une version 0° - 360° des données sur une carte centrée à 180°.

Figure Vector 5:

../../../_images/vectorWrapping.png

Traversée de la longitude 180° en utilisant la fonction ST_Shift_Longitude

Usage

  • Importer des données dans PostGIS (Importer des données dans PostgreSQL) en utilisant, par exemple, l’extension DB Manager.

  • Utiliser l’interface en ligne de commande PostGIS pour exécuter la commande suivante (dans cet exemple, “TABLE” est bien le nom de votre table PostGIS): gis_data=# update TABLE set the_geom=ST_Shift_Longitude(the_geom);

  • Si tout s’est bien passé, vous devriez recevoir une confirmation sur le nombre d’entités qui ont été mises à jour. Ensuite, vous pouvez charger la carte et voir la différence (Figure_vector_5).

Couches SpatiaLite

mActionAddSpatiaLiteLayer La première fois que vous chargerez une base Spatialite, commencez par cliquer sur le bouton mActionAddSpatiaLiteLayer Ajouter une couche SpatiaLite ou sélectionner l’option mActionAddSpatiaLiteLayer Ajouter une couche SpatiaLite... depuis le menu Couche ou en tapant Ctrl+Shift+L. Ceci fait apparaitre une fenêtre qui vous permet soit de vous connecter à une base SpatiaLite déjà connue de QGIS et sélectionnable dans une liste déroulante, soit de définir une nouvelle connexion. dans le second cas, cliquez sur le bouton [Nouveau] et utilisez le navigateur de fichier pour pointer votre base SpatiaLite qui se termine par une extension .sqlite.

Si vous souhaitez sauvegarder une couche vecteur au format SpatiaLite, vous pouvez le faire par un clic-droit sur la couche dans la légende. Cliquez ensuite sur Enregistrer sous..., définissez le nom du fichier et le SCR en sortie, choisisez ‘SpatiaLite’ comme format. Vous pouvez également sélectionner ‘SQLite’ comme format et ajouter SPATIALITE=YES comme source de données dans les options OGR de création. OGR crée alors une base de données SpatiaLite. Voir également http://www.gdal.org/ogr/drv_sqlite.html.

QGIS gère les vues SpatiaLite éditables.

Créer une nouvelle couche SpatiaLite

Si vous souhaitez créer une nouvelle couche SpatiaLite, référez-vous à la section Créer une nouvelle couche SpatiaLite.

Astuce

Extensions de gestion de données SpatiaLite

Pour gérer des données SpatiaLite, vous pouvez également utiliser diverses extensions Python : QSpatiaLite, SpatiaLite Manager ou DB Manager (extension principale, recommandée). Elles peuvent toutes être téléchargées et installées via le Gestionnaire d’extensions.

Couches MSSQL Spatial

mActionAddMssqlLayer QGIS gère également en natif MS SQL 2008. La première fois que vous chargez une donnée géographique MSSQL, commencez par cliquer sur le bouton mActionAddMssqlLayer Ajouter une couche MSSQL de la barre d’outils ou sélectionnez mActionAddMssqlLayer Ajouter une couche MSSQL... depuis le menu Couche ou encore tapez Ctrl+Shift+M.

Couches Oracle Spatial

Les fonctionnalités spatiales dans Oracle Spatial aident les utilisateurs dans la gestion des données localisées et géographiques sous forme native d’une base de données Oracle. QGIS gère maintenant ces couches.

Créer une connexion enregistrée

mActionAddOracleLayer La première fois que vous utilisez des données Oracle Spatial, vous devez créer une connexion vers la base qui contient les données. Cliquez tout d’abord sur le bouton mActionAddOracleLayer Ajouter une couche Oracle Spatial de la barre d’outils ou sélectionnez l’option mActionAddOracleLayer Ajouter une couche Oracle Spatial du menu Couche ou encore, tapez Ctrl+Shift+O. Pour accéder au gestionnaire de connexion, cliquez sur le bouton [Nouveau] pour faire apparaitre la fenêtre Créer une nouvelle connexion Oracle Spatial. Les paramètres requis pour la connexion sont :

  • Nom : Un nom pour cette connexion. Il peut être identique à Base de données.

  • Base de données : SID ou SERVICE_NAME de l’instance Oracle.

  • Hôte : Nom pour l’hôte de la base de données. Il doit s’agir d’un nom existant, car il sera utilisé pour ouvrir une connexion Telnet ou interroger l’hôte. Si la base de données est sur le même ordinateur que QGIS, mettez simplement ‘localhost’.

  • Port : numéro de port que le serveur de base de données Oracle écoute. Le port par défaut est 1521.

  • Nom d’utilisateur : Nom d’utilisateur utilisé pour se connecter à la base de données.

  • Mot de passe : mot de passe associé au Nom d’utilisateur pour se connecter à la base de données.

Vous pouvez également activer les options suivantes :

  • checkbox Enregistrer le nom d’utilisateur indique s’il faut ou non sauvegarder le nom de l’utilisateur de la base de données dans la configuration de la connexion.

  • checkbox Enregistrer le mot de passe indique s’il faut ou non sauvegarder le mot de passe de connexion à la base de données dans les paramètres de connexion.

  • checkbox Chercher uniquement dans la table de métadonnées restreint la liste des tables affichées à celles qui sont dans la vue all_sdo_geom_metadata. Ceci peut accélerer l’affichage initial des tables spatiales.

  • checkbox Chercher uniquement les tables de l’utilisateur limite la recherche des tables spatiales à celles dont l’utilisateur est propriétaire.

  • checkbox Lister les tables sans géométries indique que les tables sans géométrie seront aussi listées par défaut.

  • checkbox Utilisez la table de métadonnées estimées quand la couche est définie, plusieurs métadonnées sont nécessaires pour la table Oracle. Cela inclut des informations sur le nombre de lignes de la table, le type de géométrie et l’étendue spatiale des données pour la colonne géométrique. Si cette table contient un grand nombre de lignes, déterminer cette métadonnée est coûteuse en temps. En activant cette option, les opérations rapides suivantes sur les métadonnées de la table sont réalisées : le décompte des lignes est réalisé à partir de all_tables.num_rows. Les étendues des tables sont toujours déterminées avec la fonction SDO_TUNE.EXTENTS_OF même si un filtre est appliqué sur la couche. La géométrie de la table est déterminée à partir des 100 premières lignes dans la table.

  • checkbox Seulement les types de géométrie existants liste seulement les types géométriques existants et ne permet pas d’ajouter les autres.

Une fois que tous les paramètres et les options sont définis, vous pouvez tester la connexion en cliquant sur le bouton [Test la connexion].

Astuce

Paramètres utilisateur de QGIS et Sécurité

Selon le système d’exploitation que vous utilisez, stocker les mots de passe dans vos paramètres QGIS peut présenter un risque vis-à-vis de la sécurité. Les mots de passe sont sauvegardés en clair dans votre système et dans les fichiers de projet ! Voici, selon le système d’exploitation, comment les paramètres QGIS sont stockés :

  • nix Les paramètres sont stockés dans votre répertoire home dans ~/.qgis2.

  • win Les paramètres sont stockés dans la base de registre.

Charger une couche Oracle Spatial

mActionAddOracleLayer Une fois une ou plusieurs connexions définies, vous pouvez charger des couches de la base de données Oracle. Bien sûr, cela nécessite d’avoir des données dans la base Oracle.

Pour charger une couche Oracle Spatial, suivez ces étapes :

  • Si la fenêtre Ajouter des tables Oracle Spatial n’est pas déjà ouverte, cliquez sur le bouton mActionAddOracleLayer Ajouter une couche Oracle Spatial de la barre d’outils.

  • Choisissez la connexion dans la liste déroulante et cliquez sur [Connecter].

  • Cochez ou décochez selon votre besoin checkbox Lister les tables sans géométrie

  • Utilisez si besoin des checkbox Options de recherche pour définir quelles entités charger ou utilisez le bouton [Construire une requête] pour ouvrir la fenêtre Construction de requête.

  • Trouvez la ou les couches que vous souhaitez ajouter dans la liste des couches disponibles.

  • Sélectionnez-la en cliquant dessus. Vous pouvez sélectionner plusieurs couches en gardant la touche Shift enfoncée quand vous cliquez. Référez-vous à la section Constructeur de requête pour plus d’informations sur l’utilisation du Constructeur de requête d’Oracle pour mieux définir la couche.

  • Cliquez sur le bouton [Ajouter] pour ajouter la couche à la carte.

Astuce

Couches Oracle Spatial

Normalement, une couche Oracle Spatial est définie par une entrée dans la table USER_SDO_METADATA.