Outdated version of the documentation. Find the latest one here.

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. Le format vectoriel GRASS, PostGIS, MSSQL Spatial et Oracle Spatial sont gérés 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 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, certain requiert des bibliothèques externes payantes ou 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 et SpatiaLite. Beaucoup des fonctionnalités de QGIS marchent, 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 inclut é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 trouvent 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 chargée, vous pouvez zoomer sur le shapefile 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 comme attendu. 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 de nom Fichier et appuyer sur Entrée. Vous pouvez ensuite parcourir les lecteurs externes et les montages réseau.

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 devez le définir manuellement via l’onglet Général de la fenêtre de Propriétés de la Couche en cliquant sur les 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 cette 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 type de Filtre selectstring: pour ‘MapInfo [OGR]’ 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 puis ‘Arc/Info Binary Coverage’ dans le Filtre selectstring de type. 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.

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. Vous pouvez ignorer cette étape si vous avez déjà obtenu un fichier XML .osm à l’aide de josm, overpass ou toute autre source.

  • Le menu Vecteur ‣ OpenStreetMap ‣ Importer la topologie depuis un fichier 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 en 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 étiquettes à 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| :menuselection:`Ajouter une couche Spatialite... du menu Couche. Voir 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 d’exactitude 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... depuis le menu Couche ou 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 labase 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ésactiver : essayer une connexion SSL non cryptée uniquement

    • permettre : essayer une connexion non-SSL. Si cela échoue, essayer une connexion SSL

    • préferer (par défaut) : essayer une connexion SSL. Si cela échoue une connexion non-SSL

    • requiert: essayer 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 Sauvegarder le Nom d’utilisateur

  • checkbox Sauvegarder le mot de passe

  • checkbox Uniquement regarder la table geometry_columns

  • checkbox Ne pas retrouver les types des colonnes non restreintes (GEOMETRY)

  • checkbox Uniquement regarder dans le schéma ‘public’

  • checkbox Lister aussi 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 de 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é. Voici 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 PostGIS

mActionAddPostgisLayer Une fois une ou plusieurs connexions 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 si besoin checkbox Lister aussi 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 ouvir 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êtes 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 de tables de base de données qui peuvent être chargées et les charger à 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 donnez 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 elles n’ont pas de clé primaire ou de champ ayant une contrainte d’unicité. Dans ce cas, vous devez 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 inclue 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.

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 shapefiles et d’autres format de données. Voir section Extension DB Manager pour plus d’informations.

shp2pgsql

PostGIS intègre un utilitaire nommé shp2pgsql qui peut être utilisé pour importer des shapefile 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 vérifier en tapant

ogrinfo --formats | grep -i post

Si vous préférez utiliser la commande PostgreSQL COPY au lieu de la méthode par défaut, INSERT INTO, 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 shp2pgsql. Vous devrez effectuer une étape supplémentaire et le créer manuellement après en utilisant la commande SQL classique CREATE INDEX (comme cela est 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 de dessin 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 :

[email protected]:~/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
[email protected]:~/current$

Couches vectorielles dépassants 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 dépassant la ligne des 180 degrés de longitude (http://postgis.refractions.net/documentation/manual-1.4/ST_Shift_Longitude.html). Il en résulte que sous QGIS 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 vers 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 (c’est un exemple où “TABLE” est bien le nom de votre table PostGIS)

    gis_data=# update TABLE set the_geom=ST_Shift_Longitude(the_geom);

  • Si tout ce passe bien, vous devriez recevoir une confirmation sur le nombre d’entités qui ont été mises à jour, puis 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 baseSpatiaLite déjà connue de QGIS, que vous pouvez choisir dans une liste déroulante, ou définissant une nouvelle connexion. Pour se faire, 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 Sauvegarder sous..., définissez le nom du fichier et le SCR en sortie, choisisez ‘SpatiaLite’ comme format. Vous pouvez également sélctionner ‘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 permet de gérer nativement MS SQL 2008. Le bouton mActionAddMssqlLayer Ajouter une couche MSSQL fait partie de la nouvelle barre d’outils et les bases MSSQL sont accessibles depuis l’Explorateur QGIS permettant d’ajouter des couches dans QGIS par un glisser-déposer.

Couches ORACLE Spatial

mActionAddOracleLayer QGIS permet de gérer nativement MS SQL 2008. Le bouton mActionAddOracleLayer Ajouter une couche ORACLE Spatial fait partie de la nouvelle barre d’outils et les bases ORACLE sont accessibles depuis l’explorateur QGIS permettant d’ajouter des couches dans QGIS par un glisser-déposer.

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 depuis le menu Couche ou 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 PostgreSQL é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 Sauvegarder 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. Les mots de passe sont enregistrés en clair dans la configuration du système et dans les fichiers projets!

  • checkbox Uniquement regarder 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 Uniquement regarder parmi 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 des statistiques estimée pour les métadonnées des couches Quand la couche est définie, plusieurs métadonnées sont nécessaire pour la table Oracle. Cela inclus des informations sur le nombre de ligne 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 ligne, 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 sur la couche est appliqué. La géométrie de la table est déterminée à partir des 100 premières lignes dans la table.

  • checkbox Seulement les types géométriques 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 de 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 passes 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 .config/QGIS/QGIS2.conf.

  • 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 si besoin checkbox Lister aussi 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 ouvir 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êtes 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.