PostGIS

Table des matières

5. Tutoriaux
5.1. Créer une base avec PostGIS
5.2. Effectuer des requêtes: le moniteur interactif psql de PostgreSQL
5.3. Effectuer des requêtes: PgAdmin III
5.4. Exemples de requêtes spatiales I
5.4.1. Création de la base et d'une table
5.4.2. Ajout de la colonne géométrique à la table - AddGeometryColumn()
5.4.3. Objets géométriques spécifiés par l'O.G.C dans PostGIS
5.4.4. Exemples d'objtes géométriques
5.4.5. Insertion d objets géometriques - GeometryFromText()
5.4.6. Insertion des données dans la table
5.4.7. Question: Quelles sont les aires des objets? - Area2d() -
5.4.8. Question: Quel sont les types géométriques des objets? - GeometryType() -
5.4.9. Question: Qui est dans le bâtiment 2? - Distance() -
5.4.10. Question: Qui est dans le bâtiment 2? - WithIn() -
5.4.11. Question: Quel est l'objet géométrique le plus proche du pieton 2? - Min(), Distance() -
5.5. Exemples de requêtes spatiales II
5.5.1. Démo de quelques requêtes en ligne avec SVG
5.5.2. Chargement des données par SQL
5.5.3. Chargement de données par ESRI Shapefiles (shp2pgsql)
5.5.4. Question-Pratique: Qu'elle est la version de PostgreSQL?
5.5.5. Question-Pratique: Où se trouve notre répertoire de bases de données? - PGDATA -
5.5.6. Question-Pratique: Qui sont les utilisateurs de PostgreSQL?
5.5.7. Question-Pratique: Quelles sont les infos sur les outils compilés pour PostGIS?
5.5.8. Question-Pratique: Quel est le listing des bases de PostreSQL?
5.5.9. Question-Pratique: Quelles sont les tables contenues dans la base?
5.5.10. Question-Pratique: Utiliser une vue pour simplifier la recherche du listing des tables.
5.5.11. Question-Pratique: Avec psql, comment obtenir rapidement un bref rappel de la synthaxe des commandes SQL de PostgreSQL?
5.5.12. Question: Où sont stockées les informations relatives aux données spatiales (métadonnées) des tables avec PostGIS? - table geometry_columns -
5.5.13. Question-Pratique: Comment créer une fonction en PLP/PGSQL qui puisse faire le différentiel entre les tables référencées par geometry_columns et toutes les tables contenus dans le schéma public de la base (tables non géospatiales)?
5.5.14. Question: Comment sont stockées les données géométriques avec PostGIS?
5.5.15. Question: Quelles sont les aires et les périmètres des bâtiments?
5.5.16. Question: Qui est dans le bâtiment Résidence des Mousquetaires ?
5.5.17. Question: Quelles distances séparent les bâtiments?
5.5.18. Question: Combien de points composent chaque objet de la table great_roads? - NumPoints() -
5.5.19. Question: Dans la table great_roads, quels sont les premier et dernier point de la Rue Paul Valéry? - StartPoint(), EndPoint() -
5.5.20. Question: Quels sont les coordonnées des centres des bâtiments (buildings)? - Centroid() -
5.5.21. Question: Comment garantir de toujours avoir un point sur un POLYGON autre que son centre en dépit de sa convexité/concavité? - PointOnSurface() -
5.5.22. Question: Quels sont les points d'intersection entre les petites routes (small_roads) et les grandes routes (great_roads)?
5.5.23. Quelle distance (relative au tracé de la rue Paul Valéry) dois-je couvrir si je pars de l'entrée la Rue Paul Valéry (table great_roads) jusqu'à son point de rencontre (intersection) avec la Rue Voltaire (table small_roads)? - line_locate_point(),line_interpolate_point() -
5.5.24. Extraire de la Rue Paul Valéry la portion de route joignant le premier cinquième 1/5 au quatrième cinquième (4/5) de cette rue - line_substring() -
5.5.25. Question: Quel bâtiment est le plus proche de la personne 2?
5.5.26. Question: Quel bâtiment ne contient aucune personne?
5.5.27. Question: Quels sont les personnes présentes dans les bâtiments?
5.5.28. Question: Combien y-a-t-il de personnes par bâtiments?
5.5.29. Question: Quel est l'aire d'intersection entre la rivière et les parcs?
5.5.30. Question:Quel bâtiment est contenu dans le parc Mangueret I? - Contains() -
5.5.31. Question:Quelles sont les personnes proches de la rivière dans un rayon de 5 mètres? - Buffer () -
5.5.32. Question: Quel parc contient un "trou"? - Nrings() -
5.5.33. Question: Quels sont les bâtiments que rencontrent la ligne qui relie la personne 5 à la personne 13? - MakeLine() -
5.5.34. Question: Comment arrondir la position des personnes (table personnes) avec un chiffre après la virgule? -SnapTogrid()-
5.5.35. Application: Utiliser les déclencheurs (triggers) en PL/PGSQL de PostgreSQL pour suivre à la trace la personne 7 quand elle se déplace. Selon sa position, savoir quel est le bâtiment qui lui est le plus proche ou le bâtiment dans lequel elle se trouve?
6. Etudes de cas
6.1. Cas pratique I: Etude détaillée, manipulation de données, cas pratique avec MapServer
6.1.1. Importation des communes du Languedoc-Roussillon
6.1.2. Afficher les informations relatives au Lambert II Etendu depuis la table spatial_ref_sys - get_proj4_from_srid() -
6.1.3. Question: Comment faire pour effacer la colonne géométrique sans effacer les données attributaires ? - DropGeometryColumn() -
6.1.4. Question: Comment faire pour effacer une table géométrique, avant une réimportation si les méta-données à utiliser vont changer?
6.1.5. Question: Comment faire si on a oublié de préciser l'identifiant de système de projection? - UpdateGeometrySrid() -
6.1.6. Question: Si on s'est trompé dans le système de projection, comment faire pour reprojetter dans un autre système de manière définitive ? - Transform() -
6.1.7. Création d'index spatiaux Gist, Vacuum de la base
6.1.8. Question: Qu'elle est l'étendue géographique/emprise de la table communes_lr? - Extent() -
6.1.9. Visualisation des données avec MapServer
6.1.10. Question: Quelles sont les comunes avoisinantes de Montpellier?, Utilité des index spatiaux - Distance(), && -
6.1.11. Utilité des index spatiaux - temps demandé pour exécuter la requête
6.1.12. Créer une table communes_avoisinantes correspondant aux communes avoisinantes de MONTPELLIER, extraite et conforme à la structure de la table communes_lr, exploitable par MapServer.
6.1.13. Requête 1: Qu'elle est l'intersection entre MONTPELLIER et les communes de LATTES et de JUVIGNAC?- Intersection()- Que vaut cette géométrie en SVG? - AsSVG(),
6.1.14. Requête 2: Qu'elle est la commune ayant la plus petite aire?
6.1.15. Mapfile générale pour la table communes_avoisinantes et les deux requêtes précédentes
6.1.16. Exercice: Obtenir une table departements_lr qui contient les contours départmentaux du Languedoc-Roussillon à partir de la table communes_lr
6.1.17. Exercice: Trouver les communes du Gard et de l'Aude qui sont limitrophes à l'Hérault et les afficher grâce à MapServer.
6.1.18. QGIS: Affichage des tables précédentes
6.1.19. Exemple de projet sous GNU/Linux avec MapServer/PostgreSQL/PostGIS: savoir si à une échelle donnée, quel sera le meilleur format d'impression de A4 à A0 pour savoir si un polygone ne débordera du cadre de la carte
6.2. Cas pratique II: Réunifier des tronçons d'un réseau hydrologique d'un département
6.2.1. Objectifs
6.2.2. Mise en oeuvre
6.2.3. Questions