Pages: 1
- Sujet précédent - Mathématique de conversion long lat wgs84 en XY lambert 93- RGF93 - Sujet suivant
#1 Mon 10 July 2023 13:48
- zedrummer
- Juste Inscrit !
- Date d'inscription: 10 Jul 2023
- Messages: 2
Mathématique de conversion long lat wgs84 en XY lambert 93- RGF93
Bonjour
Certes ce post est très vieux et a été répondu, mais comme il m'a servi de base pour trouver la solution, je me permets de donner ici du code en C# (qui ne doit donc pas être très loin du code en C) pour convertir dans les 2 sens entre (lat, long) et Lambert-93:
Code:
const double C = 11754255.426096; //constante de la projection
const double E = 0.0818191910428158; //première excentricité de l'ellipsoïde
const double N = 0.725607765053267; //exposant de la projection
const double Xs = 700000.0; //coordonnées en projection du pole
const double Ys = 12655612.049876; //coordonnées en projection du pole
const double L0 = 3; // longitude de référence
public void ConvertLatLongToLambert93(double lat, double lon, ref double px, ref double py)
{
double lat_rad = lat / 180 * Math.PI;
double lat_iso = Math.Atanh(Math.Sin(lat_rad)) - E * Math.Atanh(E * Math.Sin(lat_rad)); //latitude isométrique
px = ((C * Math.Exp(-N * (lat_iso))) * Math.Sin(N * (lon - L0) / 180 * Math.PI) + Xs);
py = (Ys - (C * Math.Exp(-N * (lat_iso))) * Math.Cos(N * (lon - L0) / 180 * Math.PI));
}
public void ConvertLambert93ToLatLong(double px, double py, ref double lat, ref double lon)
{
double x = px - Xs;
double y = py - Ys;
double latiso = Math.Log(C / Math.Sqrt((x * x) + (y * y))) / N;
double sinPhi = Math.Tanh(latiso + E * Math.Atanh(E * Math.Sin(1)));
for (int i = 0; i < 6; i++) sinPhi = Math.Tanh(latiso + E * Math.Atanh(E * sinPhi));
lat = Math.Asin(sinPhi) * 180.0 / Math.PI;
lon = ((Math.Atan(-x / y)) / N + L0 / 180.0 * Math.PI) / Math.PI * 180.0;
}Dernière modification par zedrummer (Mon 10 July 2023 16:40)
Hors ligne
#2 Mon 10 July 2023 15:01
- zedrummer
- Juste Inscrit !
- Date d'inscription: 10 Jul 2023
- Messages: 2
Re: Mathématique de conversion long lat wgs84 en XY lambert 93- RGF93
Par contre, je suis très surpris, je lis partout que les cartes aéronautiques auxquelles on a accès sont en lambert (https://coursdubia.pagesperso-orange.fr/NSR%202.pdf) et quand je vois par exemple la TMA de LFSB ici https://www.dircam.dsae.defense.gouv.fr … e_lfsb.pdf (page "AD 2 LFSB AMSR 01" vers le milieu du pdf) et que j'utilise les coordonnées de cette carte que je convertis en Lambert, si je dessine, moi j'arrive à ça:
[img]https://i.servimg.com/u/f88/17/72/22/03/scree306.png[/img]
Ça parait plus écrasé, ce qui fait que si je traçais des cercles concentriques sur l'ARP, ce serait complètement faux. Quelqu'un peut m'aiguiller sur la conversion utilisée dans la carte du PDF, SVP?
Dernière modification par zedrummer (Mon 10 July 2023 15:05)
Hors ligne
Pages: 1
- Sujet précédent - Mathématique de conversion long lat wgs84 en XY lambert 93- RGF93 - Sujet suivant


