#1 Thu 18 October 2012 16:15
- renard
- Participant actif
- Date d'inscription: 16 Mar 2010
- Messages: 96
Postgis, transformer lambert 93 en pseudo mercator.
Bonjour,
Je souhaiterais reprojeter une table postgis de lambert 93 à pseudo mercator.
Pour cela j'ai d'abord ajouté la projection à postgis (1.3) http://spatialreference.org/ref/sr-org/7483/
Pour tester ensuite une future création de table j'ai réalisé la requête suivante
Code:
SELECT AsText(st_transform(geometrie,97483)) FROM table
Mais j'obtiens des résultats un peu étrange :
Code:
"POINT(528900.779264726 5413475.46076533)" "POINT(539368.306600121 5411986.99999482)" "POINT(527593.357972354 5413357.36079611)" "POINT(518465.791926228 5413230.02402482)" "POINT(517734.954932068 5413122.61883987)" "POINT(517515.9309276 5412743.56772694)" "POINT(522679.698906241 5412154.67739656)" "POINT(532640.74983103 5412795.23003068)" "POINT(535572.023824674 5412369.63161688)"
.
Je devrais avoir des degres minute, mais la on dirait du lat/long. Est ce simplement le "astext" qui me donne ce résultat? J'ai vu qu'il existait la commande ST_AsLatLonText, me donnerait elle le resultat?
Dans quel mesure puis-je alors utiliser la table qui serait créée par la requête
Code:
SELECT st_transform(geometrie,97483) FROM table
Par avance merci,
Dernière modification par renard (Thu 18 October 2012 16:16)
Hors ligne
#2 Thu 18 October 2012 17:29
Re: Postgis, transformer lambert 93 en pseudo mercator.
Bonsoir,
je ne suis pas un expert des preojections mais votre requête est bonne, c'est votre code EPSG qui ne me parle pas.
Comme indiqué sur la page que vous indiquez, c'est le code EPSG 3857 qu'il faut utiliser
Code:
SELECT st_transform(geometrie, 3857)
Et il semble que l'unité est bien le mètre.
Dernière modification par Mathieu BOSSAERT (Thu 18 October 2012 17:29)
Mathieu BOSSAERT
Association GeoRezo
Hors ligne
#3 Thu 18 October 2012 17:46
- renard
- Participant actif
- Date d'inscription: 16 Mar 2010
- Messages: 96
Re: Postgis, transformer lambert 93 en pseudo mercator.
Merci de votre réponse,
J'ai pourtant essayé en indiquant srid : 3857, mais j'obtiens un message d'erreur signifiant que ce SRID est inexistant. En revanche, lorsque je saisi srid 97483 il me retourne les résultats précédemment postés.
J'ai vu que parfois le problème pourrait être PROJ4.
Ainsi
SELECT PostGIS_Full_Version();
me renvoie
"POSTGIS="1.3.4" GEOS="3.0.3-CAPI-1.4.2" PROJ="Rel. 4.6.1, 21 August 2008" USE_STATS"
. UN bon présage???
Hors ligne
#4 Thu 18 October 2012 19:41
- jcr83
- Participant actif
- Date d'inscription: 17 Mar 2008
- Messages: 147
Re: Postgis, transformer lambert 93 en pseudo mercator.
Je souhaiterais reprojeter une table postgis de lambert 93 à pseudo mercator.
Je devrais avoir des degres minute
Pas du tout ! Comme l'a dit Matthieu, l'unité de la projection pseudo-Mercator (ou Mercator sphérique, code EPSG 3857) est bien le mètre.
Le premier point correspond à 4°45'4.308"E 43°39'47.679"N, c'est correct ?
Hors ligne
#5 Thu 18 October 2012 20:26
Re: Postgis, transformer lambert 93 en pseudo mercator.
Bonjour,
Peut être mettre à jour postgis. 1.3.4 est un peu ancien
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
#6 Mon 05 November 2012 15:03
- renard
- Participant actif
- Date d'inscription: 16 Mar 2010
- Messages: 96
Re: Postgis, transformer lambert 93 en pseudo mercator.
Bonjour,
J'ai donc mis à jour postgis 1.5.6 (mais pas postgresql, toujours en 8.3)
Je tente à nouveau convertir mes données mais les résultats sont toujours abérants en pseudo mercator. Pour repartir sur du propre j'ai crée une nouvelle base avec le nouveau template postgis et des données en L93. J'ai d'abord vérifié mes données avec
Code:
SELECT ST_AsText(geometrie) FROM matable
==> coordonnées justes
Ensuite
Code:
SELECT ST_AsText(ST_Transform(geometrie,4326)) FROM matable
==> en wgs 84, le résultat est cohérent.
Enfin
Code:
SELECT ST_AsText(ST_Transform(geometrie,3857)) FROM matable
ou encore
Code:
SELECT ST_AsText(ST_Transform(geometrie,3785)) FROM matable
J'obtiens le même résultat assez étrange.
Code:
"POINT(528900.779264726 5413475.46076533)" "POINT(539368.306600121 5411986.99999482)" "POINT(535572.023824674 5412369.63161688)" "POINT(527593.357972354 5413357.36079611)" "POINT(532640.74983103 5412795.23003068)" "POINT(518465.791926228 5413230.02402482)"
Une idée?
Par avance merci
*EDIT :
Petit test supplémentaire :
Code:
SELECT st_askml(geometrie) FROM matable
J'obtiens des données cohérentes... Que se cache t-il derrière le st_askml?
Code:
"<Point><coordinates>4.75119653796229,43.663244030698166</coordinates></Point>" "<Point><coordinates>4.845227935885525,43.653570482502602</coordinates></Point>" "<Point><coordinates>4.739451772665086,43.662476552616226</coordinates></Point>" "<Point><coordinates>4.784793265180958,43.658823385490827</coordinates></Point>" "<Point><coordinates>4.695311622264646,43.654660300522167</coordinates></Point>" "<Point><coordinates>4.65089223138408,43.660951042084605</coordinates></Point>" "<Point><coordinates>4.657457451804613,43.661649037758771</coordinates></Point>" "<Point><coordinates>4.811125347485308,43.656057364942534</coordinates></Point>"
*EDIT 2 :
Un éclaircissement : http://www.forumsig.org/showthread.php?t=21318
Je ne suis pas sur de tout comprendre. Je peux utiliser le 4326 pour utiliser mes données vecteurs sur les api (google, bing, openstreetmap), mais si ces données sont tuilées par un serveur carto, ou si j'utilise des rasters, alors mes "images" seront déformées.
Je souhaiterais vraisemblablement utiliser des tuiles, ainsi j'en conclus que je dois obligatoirement utiliser le pseudo mercator (SRID 3857) mais comment convertir mes données lambert 93 en pseudo mercator (unité degres) pour qu'elles soient calées sur les couches Google, bing etc.?
Dernière modification par renard (Mon 05 November 2012 17:29)
Hors ligne
#7 Wed 07 November 2012 10:47
- jcr83
- Participant actif
- Date d'inscription: 17 Mar 2008
- Messages: 147
Re: Postgis, transformer lambert 93 en pseudo mercator.
Comme je l'ai dit plus haut, le résultat que vous obtenez est correct, ce sont bien des coordonnées pseudo-Mercator (EPSG:3857).
Hors ligne