Spatialiser une base de données postGIS

Même si PostgreSQL a été installé conjointement avec PostGis, la base de données n’est pas, par défaut, spatialisée.

Un rapide coup d’oeil aux tables nous montre l’absence des deux principales tables nécessaires à PostGIS, geometry_columns et spatial_ref_sys.

Voilà comment les ajouter, ainsi que l’ensemble des fonctions nécessaires à la spatialisation de la base colloque:

sudo su - postgres
createlang plpgsql colloque
psql -f /usr/share/postgresql-8.3-postgis/lwpostgis.sql -d colloque
psql -f /usr/share/postgresql-8.3-postgis/spatial_ref_sys.sql -d colloque

Pour ajouter les droits d’usage sur ces tables à l’utilisateur, saisir :

sudo –s –u postgres
psql colloque
ALTER TABLE geometry_columns OWNER TO colloque;
ALTER TABLE spatial_ref_sys OWNER TO colloque;


No stress   😉

2 Comments

  1. Création d’exemples:

    CREATE SEQUENCE points_id_seq;
    CREATE TABLE points ( id INTEGER PRIMARY KEY DEFAULT NEXTVAL(‘points_id_seq’) );
    SELECT AddGeometryColumn(‘points’, ‘location’, 4326, ‘POINT’, 2);
    CREATE INDEX points_location_idx ON points USING GIST ( location );

    // CREATE a point
    INSERT INTO points(location) VALUES (ST_GeomFromText(‘POINT(-76.615657 39.327052)’));

    // RETURNS the point
    SELECT * FROM points WHERE ST_Distance(location, ST_GeomFromText(‘POINT(-76 39)’)) < 1; // Does NOT RETURN the point SELECT * FROM points WHERE ST_Distance(location, ST_GeomFromText('POINT(-76 39)')) < .1;

  2. Pour info avec la version postgresql-8.4-postgis les 2 scripts a passer (lwpostgis.sql et ref_spatialxxxx.sql) ont été remplacé par le script postgis.sql situé dans /usr/share/postgresql/8.4/contrib/postgis-xx/
    Voici ce qu’il faut faire:
    createdb ma_bdd
    createlang plpgsql ma_bdd
    psql -d ma_bdd -f /usr/share/postgresql/8.4/contrib/postgis-1.5/postgis.sql
    psql -d ma_bdd -f /usr/share/postgresql/8.4/contrib/postgis-1.5/spatial_ref_sys.sql
    psql -d ma_bdd -f /usr/share/postgresql/8.4/contrib/postgis_comments.sql

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.