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?
5.5.36. PgDijkstra: module de routing pour PostgreSQL pour la recherche du plus cours chemin
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