Cette page est en cours de rédaction.
Apportez votre aide…

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 :

  • la possibilité de définir le type de champ geometry
  • l'ensemble des fonctions permettant les traitements géographiques
  • la base de référence des projections géographiques spatial_ref_sys
  • la base de gestion des attributs géographiques des tables geometry_columns

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.

  • postgis.txt
  • Dernière modification: Le 31/10/2023, 15:59
  • par bcag2