Table des matières

, , ,

Postgis

Ce qu'est postgis

Postgis est une extension de postgresql qui permet la gestion d'objets géographiques. Concrètement la cartouche spatiale postgis ajoute au serveur :

Installation

Installer le paquet correspondant à votre version de postgres, exemples:

Bien que déconseillé pour des grosses bases de données postgres, il est également possible d'utiliser un conteneur docker postgres-postgis. Vous pouvez consulter le tuto Postgrest qui y fait référence.
Postgis utilise le schéma par défaut public, ne pas le supprimer !
Les paquets supplémentaires suivants seront installés : 
  libgeos-3.2.2 libgeos-c1 libproj0 postgis proj-data

Les scripts nécessaires à la couche géographique de postgresql sont installé dans le dossier
/usr/share/postgresql/9.1/contrib/postgis-1.5/ ou
/usr/share/postgresql/10/contrib/postgis-2.4/

Donner à une base la capacité géographique

Support de cours d'une formation SIG (partie sur PostGis)

Si le serveur dispose bien du module PostGis, il suffit d'exécuter sur la base :

CREATE EXTENSION "postgis";

FIXME les infos ci-dessous sont sans doute obsolète (indisponible avec postgresql 13).

Les scripts donnés ci-après prennent pour hypothèse qu'un nouvel utilisateur a été créé avec la méthode recommandée

Tout d'abord, créer la base de données en question

createdb -U <nom_utilisateur> <nom_base_geo>

Puis on utilser le rôle postgres (super user postgresql)

$ sudo -i -u postgres 

pour exécuter dans cet ordre les scripts suivants :

psql -f /usr/share/postgresql/9.1/contrib/postgis-1.5/postgis.sql  <nom_base_geo>
psql -f /usr/share/postgresql/9.1/contrib/postgis-1.5/spatial_ref_sys.sql  <nom_base_geo>

puis on quitte le shell postgres

exit
Si vous êtes amenés à créer plusieurs bases géographiques, il peut être intéressant de créer une base qui serve de modèle, par exemple template_postgis Il est ensuite très facile de créer une base géographique en appelant ce modèle lors de la création d'un base
createdb -U <nom_utilisateur> -T template_postgis <nom_base_geo>

Pour faire des imports et des exports (car la fonction sur phppgadmin est bancale) :

$ sudo -i -u postgres

export :

pg_dump <nom_de_la_base> > nom_de_la_base.pgdump

import:

cat  nom_de_la_base.pgdump | psql -d  nom_de_la_base

—-

Contributeurs : Yannick, Sparky, Elemmire, Aldian, Fred, XAVIER_jean-marie, bcag2.