Soyez le premier à donner votre avis sur cette source.
Vue 36 915 fois - Téléchargée 2 299 fois
public class Lambert { /// <summary> /// Calcul de Coordonnées Lambert II étendues /// </summary> /// <param name="pLatitude">Latitude en degrée decimale</param> /// <param name="pLongitude">Longitude en degrée decimale</param> /// <returns>Coordonnées Lambert II étendues</returns> public static Point Coordonnees(double pLatitude, double pLongitude) { double latitude = Deg2Grad(pLatitude); double longitude = Deg2Grad(pLongitude); Point lcRet = new Point(); Double n = 0.7289686274; Double C = 11745793.39; Double Xs = 600000; Double Ys = 8199695.768; //Double Ys = 6199695.768; // Longitude du Meridien central en radian // Utlisation de Londres comme référence ED50 //Double mC = Deg2Grad(2, 20, 14.025); // Utilisation de Paris comme référence NTF Double mC = 0; // Exentricité de l'ellipsoïde Double e = 0.08248325676; Double l = (0.5 * Math.Log(((1 + Math.Sin(Grad2Rad(latitude))) / (1 - Math.Sin(Grad2Rad(latitude)))))) - ((e / 2) * Math.Log(((1 + (e * Math.Sin(Grad2Rad(latitude)))) / (1 - (e * Math.Sin(Grad2Rad(latitude))))))); Double R = C * Math.Exp(-n * l); Double fi = n * (longitude - mC); lcRet.X = (int)Math.Round(Xs + (R * Math.Sin(Grad2Rad(fi)))); lcRet.Y = (int)Math.Round(Ys - (R * Math.Cos(Grad2Rad(fi)))); return lcRet; } /// <summary> /// Conversion d'angle /// </summary> /// <param name="pAngle">Degré</param> /// <returns>Radian</returns> public static double Deg2Grad(Double pAngle) { return pAngle * 200 / 180; } /// <summary> /// Conversion d'angle /// </summary> /// <param name="pAngle">Grade</param> /// <returns>Degré</returns> public static double Grad2Deg(Double pAngle) { return pAngle * 180 / 200; } /// <summary> /// Conversion d'angle /// </summary> /// <param name="pDeg">Degré</param> /// <param name="pMin">Minute</param> /// <param name="pSec">Seconde</param> /// <returns>Grade</returns> public static double Deg2Grad(Double pDeg, Double pMin, Double pSec) { double pAngle = pDeg + (pMin / 60) + (pSec / 3600); return pAngle * 200 / 180; } /// <summary> /// Conversion d'angle /// </summary> /// <param name="pAngle">Grade</param> /// <returns>Radian</returns> public static double Grad2Rad(Double pAngle) { return pAngle * Math.PI / 200; } }
14 févr. 2019 à 19:02
Cette erreur est signalée depuis février 2006, soit depuis que le source est posté (il suffit de regarder les 5 commentaires avant toi), l'auteur n'a jamais corrigé et n'est d'ailleurs pas réapparu sur le forum depuis.
D'autre part, dans la description il explique que les coordonnées sont en NTF, je ne vais pas faire un cours de géodésie là maintenant, mais ce système est illégal en France depuis décembre 2000. La NTF était le système précédent et datait des années 1880, soit un siècle avant l'invention du GPS.
Donc, même si le programme ne buggait pas, tu ne pourrais pas y rentrer les coordonnées GPS de ta ville, ou ta maison.
Dans sa description, il a écrit que le site de l'IGN explique tout bien comme il faut, je confirme.
14 févr. 2019 à 18:24
Erreur sur le this.CarteAffi.Reload.
12 janv. 2009 à 13:29
Erreur sur le this.CarteAffi.Reload.
16 juil. 2008 à 11:23
Erreur sur le this.CarteAffi.Reload.
9 mars 2007 à 14:53
Les coordonnées de villes d'étalonnage sont-elles en degrés ou radians ?
Et où pourrais-je trouver la même base de données que vous ?
Merci !
Johann
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.