PostgreSQL - Postgis - OpenStreemap
Atelier base de données PostgreSql + Postgis avec intégration de données OpenStreetmap Installation base de données Postgresql : apt-get install postgresql-8.3 postgresql-client-8.3 postgresql-contrib-8.3 Installation de Postgis et des outils géographique: apt-get install postgresql-8.3-postgis libgeos gdal-bin libgdal libproj0 Installation de l'outil d'importation de données openstreemap: apt-get install osm2pgsql Installation de l'outil de visualisation de données géographique: apt-get install qgis
- Ouvrir un terminal et passer en user postgres (su postgres) su postgres - Créer la base de données 'osm' et le language plpgsql createdb -E LATIN9 osm createlang plpgsql osm - Création de la cartouche spatiale dans la base de données 'osm'. La création de la fonctionnalité cartographie dans la base de données consiste à exécuter deux scripts SQL(lwposgis.sql et spatial_ref_sys.sql) qui vont créer les tables et fonctions nécessaires à cette fonctionnalité. Suivant les distributions ou le mode d'installation ces deux scripts SQL peuvent se trouver à des endroits différents un locate les situera facilement (pour moi ils sont dans usr/share). Il ne suffit plus que de les exécuter psql osm < usr/share/lwposgis.sql psql osm < usr/share/spatial_ref_sys.sql si aucune erreur, Postgis est opérationnel dans la base de données
- Pour voir les tables et fonctions créés lançons PgAdmin3, dans le schéma public de la base de données 'osm' nous constatons la présence de 2 tables geometry_columns et spatial_ref_sys la première contient les références vers les tables géographiques de la base de données et la seconde tous les systèmes de référence pris en compte par Postgis. libgeos Nous constatons également dans la rubrique 'Fonctions' du schéma public la présence de fonctions (environ 674) en allant sur le détail d'une fonction on s'aperçoit qu'elle appelle une fonctionnalité de la librairie géographique (libgeos) que nous avons installé précédemment. libgeos - Pour résumer l'installation de Postgis c'est la création de tables et de fonctions qui mettent en relation la base de données et la librairie géographique (libgeos), le nom de ces fonctions est relativement parlant et ont en déduit facilement l'utilité.
Exportation des données depuis le site de Openstreetmap - Zoomer sur la carte pour récupérer la zone à exporter. - Sélectionner l'onglet Export. - Sélectionner le format d'export OpenStreetMap XML Data - Appuyer sur le bouton Export - Enregistrer le fichier par défaut il s'appellera map.osm
Importation des données dans la base de donnéesap - Ouvrir une console - Passer en user postgres (su postgres) - Lancer la commande osm2pgsql -c -d osm map.osm si pas d'erreur, les données ont bien été intégrées dans la base de données - A l'aide de PgAdmin3 on peut remarquer que l'import a crée 4 tables - planet_osm_line - planet_osm_point - planet_osm_polygon - planet_osm_road - Pour visualiser les données via QGIS il faut créer un index primaire sur chaque table (sur le champ osm_id) - Lancer QGIS et se connecter sur la base de données et sélectionner les tables.
Visualiser les donnés cartographiques stockées dans la base de données - Ouvrir QGIS - Sélectionner le connecteur de base de données - Paramétrer une connexion vers la base de données (postgresql doit accepter les connexions voir pg_hba.conf et postgreslq.conf) - Une fois connecté à la base sélectionner les tables les unes après les autres. - On peut remarquer que QGIS affiche les données exportées de Openstreetmap, mais dans un format de type vecteur. - On peut également au travers de QGIS visualiser les données attributaires des données géographique.
Manipulation des données avec Postgis - Ouvrir l'éditeur SQL de PgAdmin3 - Que représente la champ géographique en format humainement lisible select astext(way) from planet_osm_line limit 10 - Quels sont les objets de type point sur un rayon de 1000 mètres autour du point de coordonnées , select * from planet_osm_point where intersects (way, buffer((pointfromtext('POINT( )',3395)),1000)) :-( oui je sais elle est un peu sioux mais elle est compréhensible
GDAL la boîte à outils géographique parmis les plus connus - ogr2ogr - ogrinfo - gdalinfo - gdaltransform etc... Le reste ici
Pour aller plus loin