Bonjour,

Tout d'abord le Lambert 2 étendu correspond au code EPSG 27572

Ensuite si on veut faire les chose proprement il faudrait faire les transformations suivantes :
* 27572 -> 4807
* 4807 -> 4326

Mais au final si tu as une déformation celle-ci est dû directement au SRID 27572, ce système était au début prévu pour décrire les données du centre de la france d'où le 2 et non toute la France d'où le étendu. D'ailleurs les sites gouvernementaux ne devrait plus depuis quelques années fournir des données en Lambert 2 étendu mais en Lambert 93 aka 2154

René-Luc D'Hont
3Liz

Le 28/04/2011 22:28, Lionel Gueganton a écrit :
Bonsoir,
Je rebondis sur la question parce qu'il y a qques temps j'ai essayé cette même conversion lambert 2 (étendu) (des données qui venaient d'un site gouvernemental) -> WGS 84 et je me suis heurté à un problème de décalage (classique visiblement quand on fait une recherche sur google...) Comme il semble y avoir des personnes calées sur le sujet ici j'en profite ;)

Pour ma part je le faisais via spatialite (qui utilise donc ensuite proj) et je faisais appel à la function SQL transform pour passer d'un SRID à un autre.
ex:
Transform(GeomFromText("POINT(....)", 27572), 4326)

Je n'étais pas réellement sur du bon SRID , alors j'en ai essayé 2 avec les propriétés proj suivantes mais j'ai eu le décalage à chaque fois (qques centaines de mètres vers l'ouest de mémoire).
Voici la définition des SRIDs que j'utilisais :

INSERT INTO spatial_ref_sys (srid, auth_name, auth_srid,ref_sys_name, proj4text) VALUES (*27572*, 'epsg', 27572, 'NTF (Paris) / Lambert zone II', '+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs');

INSERT INTO spatial_ref_sys (srid, auth_name, auth_srid,ref_sys_name, proj4text) VALUES (*27563*, 'epsg', 27563, 'NTF (Paris) / Lambert Sud France', '+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs');

INSERT INTO spatial_ref_sys (srid, auth_name, auth_srid,ref_sys_name, proj4text) VALUES (*27582*, 'epsg', 27582, 'NTF (Paris) / France II (deprecated)', '+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs');

INSERT INTO spatial_ref_sys (srid, auth_name, auth_srid, ref_sys_name, proj4text) VALUES (*4326*, 'epsg', 4326,'WGS 84', '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs');

Tout cela me semblait correct mais il y a probablement un souci car les positions obtenues me semblaient décallées par rapport à la réalité. Les données venaient d'un site gouvernemental. A ce propos, classiquement, sur les site gouvernementaux, le lambert 2 étendu correspond à quel SRID exactement ? (peut etre est-ce là la source de mon erreur :/)

Merci de votre retour,
Lionel.


On Apr 22, 2011, at 12:10 PM, [email protected] <mailto:[email protected]> wrote:


Puis, pour le calcul
http://fr.wikipedia.org/wiki/Projection_de_Lambert#Des_coordonn.C3.A9es_cartographiques_.28X.2CY.29_aux_g.C3.A9ographiques_.28lat.2C_lon.29
quel X0 je prends, sachant qu'il dépend des coordonnées que je cherche
justement à calculer ?
Bref, je suis un peu perdu, alors si quelqu'un peut m'expliquer ou encore mieux, me donner un exemple de code qui fait la transformation, je serais
bien
content :)

il existe des librairies qui font le boulot

http://trac.osgeo.org/proj4j/   pour java
http://trac.osgeo.org/proj/ en C

--
JB




_______________________________________________
dev-fr mailing list
[email protected] <mailto:[email protected]>
http://lists.openstreetmap.org/listinfo/dev-fr



_______________________________________________
dev-fr mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/dev-fr

_______________________________________________
dev-fr mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/dev-fr

Répondre à