banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#1 Wed 27 August 2008 14:31

bort.vincent
Juste Inscrit !
Lieu: Strasbourg
Date d'inscription: 19 Jul 2006
Messages: 2

transformation de coordonnées dans postgis

bonjour,

je souhaite transformer une table "commune" en lambert zone 1 ( SRID 27571) vers RGF93 (SRID 2154) et enregistrer le résultat:

-dans une vue
-dans une nouvelle table
-dans la même table

Comme je suis débutant sur postgis, je n'arrive  pas à contruire une requête SQL avec la commande ST_transform ou transform.

comment dois-je procéder?

je vous remercie d'avance

Hors ligne

 

#2 Wed 27 August 2008 22:31

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: transformation de coordonnées dans postgis

Bonjour,

Dans la même table :

Code:

SELECT addGeometryColumn( 'communes', 'the_geom_rgf93', 2154, 'MULTIPOLYGON', 2);
UPDATE matabe SET the_geom_rgf93 = transform(the_geom,2154);

Dans une nouvelle table :

Code:

CREATE TABLE newtable AS SELECT communes.*, transform(the_geom,2154) AS the_geom_rgf94 FROM communes;
INSERT INTO geometry_column VALUES ('','public','newtable','the_geom_rgf93',2,2154,'MULTIPOLYGON);

Dans une vue :

Code:

CREATE VIEW newtable AS SELECT communes.*, transform(the_geom,2154) AS the_geom_rgf94 FROM communes;
INSERT INTO geometry_column VALUES ('','public','newtable','the_geom_rgf93',2,2154,'MULTIPOLYGON);

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#3 Thu 28 August 2008 08:59

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1544

Re: transformation de coordonnées dans postgis

Bonjour,

(en admettant que la table commune a une colonne geo appelée the_geom)
____________
Dans une vue:

create view mavue as select champs1, champs2, ...,
st_transform(the_geom, 2154) from commune;
_____________________
Dans une nouvelle table:

create table matable as select champs1, champs2, ...,
st_transform(the_geom, 2154) from commune;
_________________
Dans la meme table:

c'est un peu plus tricky:
il y a surement une contrainte sur les SRID sur la table commune (si
elle a ete créée avec shp2pgsql par exemple). on peut le verifier avec
la commande psql:
d commune

Si c'est le cas, il faut dropper la contrainte sur les SRID, mettre a
jour les geométries, puis recreer la contrainte, qqch comme:

alter table commune drop constraint enforce_srid_the_geom;
update commune set the_geom = st_transform(the_geom, 2154);
alter table commune add constraint enforce_srid_the_geom check
(srid(the_geom) = 2154);

S'il n'y a pas de contraintes sur les SRID, la commande update suffit.

Nicolas

Hors ligne

 

#4 Thu 28 August 2008 09:07

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: transformation de coordonnées dans postgis

Bonjour,

Personnellement j'aime bien utiliser une autre colonne pour la reprojection, cela fait un peu information en "doublon" mais dans le cas où les données sont importantes c'est appréciable de ne pas avoir à les reprojeter à la volée (même si cela ne m'arrive pas beaucoup).

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#5 Thu 28 August 2008 15:02

bort.vincent
Juste Inscrit !
Lieu: Strasbourg
Date d'inscription: 19 Jul 2006
Messages: 2

Re: transformation de coordonnées dans postgis

bonjour,

merci beaucoup pour ces réponses et votre aide précieuse.

je vais tester rapidemment vos suggestions

bonne journée a+

Hors ligne

 

Pied de page des forums

Powered by FluxBB