#1 Thu 12 April 2012 16:52
- icadedt
- Participant assidu
- Lieu: ici et là
- Date d'inscription: 21 Jul 2006
- Messages: 478
probleme modif geometry projection
bonjour,
ma table "matable" contient la colonne "the_geom" de type geometry
je veux changer les objets géométriques en leur redéfinissant leur epsg:
Code:
update matable set the_geom=transform(the_geom,4326)
la requête semble marcher mais quand je fais "select astext(the_geom) from matable", les coordonnées affichées ne sont pas du tout celles du wgs84. Quelle est la fonction qui permet de reprojeter la géométrie?
Merci d'avance
Hors ligne
#2 Thu 12 April 2012 18:59
- cedricd
- Participant occasionnel
- Lieu: Dijon
- Date d'inscription: 20 Mar 2006
- Messages: 19
Re: probleme modif geometry projection
Bonsoir,
- Vos géométries initiales possèdent elles bien un code EPSG associé ? Vérifier avec :
Code:
SELECT ST_Srid(the_geom) FROM matable;
- Ce dernier est il cohérent avec les coordonnées des géometries. Si ce n'est pas le cas :
Code:
UPDATE matable SET the_geom = ST_SetSrid(the_geom, votre_epsg_coherent);
Normalement, si votre installation de Postgis est bien faite (Proj4, table spatial_ref_sys,etc.), une reprojection devrait effectivement être réalisée
Vous pouvez tenter de réaliser l'opération en une seule commande :
Code:
UPDATE matable SET the_geom = ST_Transform(ST_SetSrid(the_geom, votre_epsg_coherent),votre_nouvel_epsg);
Sinon... il faut chercher ailleurs.
Cordialement
Hors ligne
#3 Fri 13 April 2012 10:05
- icadedt
- Participant assidu
- Lieu: ici et là
- Date d'inscription: 21 Jul 2006
- Messages: 478
Re: probleme modif geometry projection
il me semble que c'est du epsg 900913. Est-ce que cette projection est prise en charge par défaut par POSTGIS?
Hors ligne
#4 Mon 16 April 2012 13:48
- cedricd
- Participant occasionnel
- Lieu: Dijon
- Date d'inscription: 20 Mar 2006
- Messages: 19
Re: probleme modif geometry projection
Bonjour,
Par défaut, après installation de PostGis, le système référencé sous le code 900913 n'est pas présent. La désignation officielle de ce système est le code EPSG 3857. Ce dernier existe bien dans la table spatial_ref_sys. Vous pouvez vous en assurer en exécutant la requête suivante :
Code:
SELECT * FROM spatial_ref_sys WHERE auth_srid=3857;
Si vos coordonnées sont bien dans ce système vous pouvez donc reprojeter vos données via l'instruction:
Code:
UPDATE matable SET the_geom = ST_Transform(ST_SetSrid(the_geom,3857),4326);
Cordialement
Hors ligne
#5 Fri 27 July 2012 14:23
- maria1000
- Participant actif
- Date d'inscription: 11 Feb 2009
- Messages: 54
Re: probleme modif geometry projection
Bonjour,
J'essaie de convertir la projection d'un point de WGS84 vers EPSG:2154 :
Les coordonnées Latidude et Longitude du point sont (45.768155 4.8969368). Il s'agit d'un point à l'adresse
"293 rue Francis de Pressensé 69100 VILLEURBANNE FRANCE"
WGS84 correspond à EPSG:4326.
La reqûete suivante
select AsText(ST_Transform(GeometryFromText('POINT(45.768155 4.8969368)',4326),2154))
donne comme résultat :
"POINT(6397224.29722676 3186161.47248742)" en projection EPSG:2154.
Ce résultat est faux,
car le centroid de VILLEURBANNE correspond à :
"POINT(846801.187132007 6520783.2870498)"
Est-ce que qqn a une explication?
Hors ligne
#6 Fri 27 July 2012 14:30
Re: probleme modif geometry projection
hummmm
georezo=# select AsText(ST_Transform(GeometryFromText('POINT(4.8969368 45.768155)',4326),2154));
astext
------------------------------------------
POINT(847413.867240583 6520498.13534094)
(1 ligne)
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
#7 Fri 27 July 2012 14:45
- maria1000
- Participant actif
- Date d'inscription: 11 Feb 2009
- Messages: 54
Re: probleme modif geometry projection
Le propblème a été résolu!
Il faut juste interchanger les positions de la Longitude et la Latitude :
select AsText(ST_Transform(GeometryFromText('POINT(4.8969368 45.768155)',4326),2154))
donne le bon résultat :
"POINT(847413.867240583 6520498.13534094)"
Hors ligne