postgresql / postgis premiers pas

Download PostgreSQL / Postgis Premiers pas

Post on 05-Jan-2017

223 views

Category:

Documents

3 download

Embed Size (px)

TRANSCRIPT

  • Ministre de l'cologie, du Dveloppement durable, des Transports et du Logement

    www.developpement-durable.gouv.fr

    PostgreSQL / PostgisPremiers pas

    Conseillers en Management des SIG du Sud-EstCentre de Prestations et d'ingnierie Informatiques

    Mars 2012

  • 2Postgis : premiers pas

    Un besoin des services de dcouvrir Postgis Le SGBD composante spatiale Postgis est de plus en plus prsent dans les

    applications utilises par les services Certains souhaitent avoir une vision de ce quoi sert Postgis et de son utilit

    ventuelle dans les projets locaux

    La dmarche des CMSIG du Sud-Est Les CMSIG ont donc particip une formation d'introduction Postgis (oct. 2011) Afin d'en faire un retour, une premire prsentation a t ralise en groupe inter-

    rgional le 16 novembre 2011 Ce document retrace le cas d'usage prsent lors de ce groupe

    Le cas d'usage : description Imaginons un utilisateur (Toto) qui a besoin de la couche des objets gographiques

    EPCI sur sa zone d'action Les donnes sources sont gres par deux personnes : un administrateur des

    rfrentiels (qui gre les contours communaux) et un gestionnaire mtier qui tient jour un tableau de correspondance communes EPCI

    L'objectif est d'utiliser Postgis pour que Toto puisse avoir ses contours d'EPCI automatiquement avec les mises jour en temps rel

    Contexte

  • 3Postgis : premiers pas

    Installation et principe de fonctionnement de Postgis L'installation et la cration d'une base de donnes composante spatiale L'organisation d'une base de donnes

    Intgrer les donnes dans Postgis Prsentation des donnes utilises Les donnes attributaires

    Crer une table Copier les donnes depuis un CSV

    Les donnes vecteurs : utilisation du plugin SPIT de QuantumGIS Crer une connexion la base de donnes Importer les donnes

    Faire une requte SQL simple (jointure)

    Crer une table issue d'une requte et l'afficher dans QGIS

    Crer une vue issue d'une requte

    Crer la vue (dynamique) des EPCI par fusion d'objets

    Plan du diaporamaCliquer sur les tapes pour accder directement la diapo correspondante

  • 4Postgis : premiers pas

    Installation Installation de Postgres et de Postgis

    PostgreSQL : tlcharger l'installateur one click en suivant ce lien. Postgis : aller dans menu dmarrer => PostgreSQL => Application stack builder

    Lancer la recherche d'extensions (attention : il faut rentrer les paramtres du proxy) ; choisir Postgis dans Spatial Extension

    pgAdmin pgAdmin est une interface d'administration des bases de donnes Postgres

    Il s'est install en mme temps que Postgres On le trouve dans le menu dmarrer ou en icne sur le bureau

    Lancer pgAdmin Dans la colonne de gauche on choisit notre serveur (taper le mot de passe) Par dfaut on a une base Postgis : elle va nous servir de modle pour crer notre

    base de travail

    RETOUR

    http://www.postgresql.org/download/windows/

  • 5Postgis : premiers pas

    Cration d'une base de donnes RETOUR

    1. (dans pgAdmin) Clic droit sur Bases de donnes => Ajouter...

    Nom : GeoBASEPropritaire : Postgres (par dfaut)Modle : Postgis

    Remarque :- le codage a un impact par la suite : il faut retenir le choix que l'on fait ici.

    OK

    2.

    3.

    4.

  • 6Postgis : premiers pas

    RETOUR

    L'organisation d'une BD

    Une organisation hirachise Le serveur est organis en plusieurs bases de

    donnes Chaque base de donnes l'est en schmas (par

    dfaut chacune a un schma public Les schmas contiennent des tables

    Interprtation Il est impossible de faire des requtes avec des

    tables appartenant plusieurs bases de donnes : attention donc lorsque l'on cre plusieurs bases

    Les schmas peuvent servir d'arborescence de donnes (mais un seul niveau)

    Exemple : une base principale pour toutes les donnes, et 3 schmas : production, diffusion, referentiels

    Serveur

    Table

    Shma

    BD

  • 7Postgis : premiers pas

    Rappel du problme On a un gestionnaire des contours communaux Une autre personne tient jour un tableau de correspondance communes-EPCI On voudrait que les objets gographiques EPCI se mettent jour

    dynamiquement

    Les donnes attributaires EPCI Donnes utilises : les donnes EPCI en Rhne-Alpes de territoires.gouv.fr

    (l'Observatoire des Politiques Territoriales) Pour ce faire : cliquer ici, choisir EPCI et cliquer sur la carte (Rhne-Alpes)

    Les contours communaux du Rhne Lien de tlchargement des contour communaux : cliquer ici Dans les exercices, il est propos de travailler avec le dpartement du Rhne (le

    nom donn la couche dans les exercices est OSMCom_069) Attention : le systme de coordonnes n'est pas indiqu(le shapefile n'a pas

    de .prj) : il s'agit du WGS 84 (EPSG 4326)

    Prsentation des donnesVoici les donnes qui permettent de raliser les exemples proposs

    RETOUR

    http://zonages.territoires.gouv.fr/zonages/p2_perim.phphttp://export.openstreetmap.fr/contours-administratifs/export-communes/

  • 8Postgis : premiers pas

    RETOUR

    Import de donnes attributaires1. Crer une table

    Pour importer des donnes attributaires Il faut d'abord avoir cr la structure de la table dans Postgis Ensuite on copie les donnes depuis un CSV

    Cration de la structure de la table

    1. Dans le bon schma (ici public) clic droit sur tables puis Ajouter... 2. Rentrer le nom (OPT_epci_RA) et le propritaire (postgres) 3. Dans l'onglet Colonnes remplir les colonnes l'aide du bouton Ajouter - Code_INSEE : character (5) - Code_SIREN : character (9) - Nom_EPCI : character (99)

    4.Cliquer sur OK en ignorant l'avertissement 5. Crer une cl primaire : clic droit sur la couche, Ajouter un objet puis dans l'onglet colonne on slectionne Code_INSEE et Ajouter puis OK

    La cl primaire : il s'agit du champ identifiant les objets (qui obit donc une rgle d'unicit).Pour pouvoir modifier la table dans pgAdmin (par la commande afficher les donnes) il faut une cl primaire.

  • 9Postgis : premiers pas

    Les donnes au format CSV Il faut bien faire attention avoir les mmes types de champs dans le CSV et

    dans la table cre prcdemment, et dans le mme ordre Il ne faut pas de ligne avec des titres Pour plus de facilit, les donnes pr-traites (en csv) partir de l'export de

    territoires.gouv.fr sont disponibles ici en CSV (sparateur : [,] ; dlimiteur de texte : [''] ; encodage comme celui de la base : [UTF8]) : le premier champ est le code INSEE, le deuxime le code SIREN, le troisime le nom de l'EPCI

    Le requteur SQL Permet de faire des requtes SQL, avec aussi un mode graphique

    Copier les donnes Excuter la requte suivante :

    RETOUR

    Import de donnes attributaires2. Copier les donnes

    Nouveau Sauvegarder modle

    Charger modle

    Excuter la requte

    Chemin du CSVLes modles des requtes ralises dans ce diaporama sont disponibles en cliquant ici.

    http://geoinfo.metier.i2/IMG/csv/OPT_epci_RA_cle6dee2b.csvhttp://geoinfo.metier.i2/IMG/zip/CMSIGSE_Postgis_SQL-2_cle6c477b.zip

  • 10Postgis : premiers pas

    RETOUR

    Import de donnes vecteur1. Crer une connexion la base dans QGIS

    Le plugin SPIT de QGIS Ce plugin permet d'importer des shapefiles Activer le plugin s'il ne l'est pas par dfaut Lancer le plugin et cliquer sur Nouveau

    Paramtrage d'une connexion postgis Nom de la connexion : au choix Hte (serveur) : localhost Port : 5432 par dfaut Base de donnes : GeoBASE Nom d'utilisateur : postgres (par dfaut) Mot de passe : renseigner selon le choix lors

    de l'installation de postgres

    Tester puis OK

    La connexion notre base est enregistre pour tous les outils de QGIS qui travaillent avec Postgis

  • 11Postgis : premiers pas

    RETOUR

    Import de donnes vecteur2. Importer des shapefiles

    1. Se connecter la base

    2. Choisir le schma (on prend referentiels dans les exercices)

    3. Ajouter un ou plusieurs Shapefiles

    4.Cliquer sur OK

    On peut ensuite aller dans pgAdmin :- la ou les tables apparaissent dans le schma (il est peut-tre utile de rafrachir)- drouler la table permet de voir les diffrents champs (dans le menu colonne)- clic droit sur la table et afficher les donnes permet de voir les donnes

  • 12Postgis : premiers pas

    Exercice On dispose des contours communaux du Rhne et de la correspondance

    communes-EPCI en Rhne-Alpes On souhaite avoir le tableau de correspondance communes-EPCI pour le Rhne

    Onglet Constructeur graphique de requtes

    Requte attributaire simple (1/2)Le mode graphique

    1. on fais glisser les tables que l'on veut

    2. Jointure

    3. On coche les champs que l'on veut en sortie

    RETOUR

  • 13Postgis : premiers pas

    Retour l' diteur SQL On peut vrifier la requte Et on peut l'excuter

    Requte attributaire simple (2/2)Ralisation de la requte

    RETOUR

    Les modles des requtes raliss dans ce diaporama sont disponibles en cliquant ici.

    http://geoinfo.metier.i2/IMG/zip/CMSIGSE_Postgis_SQL-2_cle6c477b.zip

  • 14Postgis : premiers pas

    Exercice On souhaite crer la table des communes du Rhne avec un attribut EPCI

    La requte avec cration de table

    Requte : cration de table (1/2)Ralisation de la requte

    On part de la requte prcdente, mais en prenant les colonnes the_geom (la gomtrie des objets) et gid (l'identifiant des objets)

    Il suffit de rajouter avant la requteCREATE table nom_de_ma_table AS

    Dans le nom de la table, il faut bien faire rfrence au schma sous la forme ''schma''.''nomtable''

    Les guillemets [ '' ] servent indiquer Postgis qu'il faut respecter la casse

Recommended

View more >