[OSM-dev-fr] calcul lambert -> lon, lat
Lionel Gueganton
lionel.gueganton at free.fr
Jeu 28 Avr 21:28:42 BST 2011
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, julien at krilin.org 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
> dev-fr at openstreetmap.org
> http://lists.openstreetmap.org/listinfo/dev-fr
>
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://lists.openstreetmap.org/pipermail/dev-fr/attachments/20110428/e3c76cef/attachment.html>
Plus d'informations sur la liste de diffusion dev-fr