begin process at 2012 02 07 08:05:50
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > GÉOLOCALISATION

GÉOLOCALISATION


 Information sur la source

Note :
7 / 10 - par 3 personnes
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Maths & Algorithmes Source .NET ( DotNet ) Classé sous :géolocalisation, lambert, carte, ign Niveau :Débutant Date de création :11/02/2006 Vu / téléchargé :28 164 / 1 405

Auteur : cendretp

Ecrire un message privé
Site perso
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Exemple sous Visual Studio 2005 de paramétrage d'une carte à partir de la longitude et la latitude connues de certaines villes (France métropolitaine).
Pour ceux qui veulent approfondir le sujet, l'IGN met à disposition sur son site des informations relatives aux calculs des coordonnées, des cartes libres de droit, ainsi que les coordonnées des communes.

Pour utiliser l'étalonnage, il faut charger une carte voir CarteDep.jpg dans ressource du projet (carte IGN libre de droit) puis se positionner dans la grille sur les villes et cliquer sur la carte.
On peut tester l'étalonnage de la carte avec différentes villes indiquées dans la combo Ville.

Source

  • 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;
  • }
  • }
    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;
        }
    }

 Conclusion

Le programme est basic, les coordonnées des villes etalons et des villes de test sont en dur dans le programme. Mais l'étalonnage d'une carte est sauvegardée en XML dans mes documents.


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source .NET (Dotnet) LABEL DÉFILANT
Source .NET (Dotnet) BARRE DE STATUT ET DE PROGRESSION COMPATIBLE MULTITHREAD
Source avec Zip Source avec une capture Source .NET (Dotnet) TRANSFERT DE MP3 VERS LECTEUR.

 Sources de la même categorie

Source avec Zip Source avec une capture (CONSOLE) TROUVER LA CLEF D'UN CODE INSEE EN DONNANT SES 13 ... par Maxime95k
Source avec Zip Source .NET (Dotnet) QUANTUM BIBLIOTHÈQUE MATHÉMATIQUES par QuantumNet
Source avec Zip Source avec une capture Source .NET (Dotnet) ALGORITHME DE LA PROPENSION par olivieram2
Source avec Zip Source .NET (Dotnet) PETITE LIBRAIRIE MATHÉMATIQUE par dodo7263
Source avec Zip Source .NET (Dotnet) INCLUSION D'UN POINT DANS UN CERCLE par eishtein

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) GÉOLOCALISATION DES MOBILES SFR ET ORANGE EN C#.NET VIA SFR ... par aahmim
Source avec Zip Source avec une capture Source .NET (Dotnet) MEMORY CODES-SOURCES par Bidou
Source avec Zip Source avec une capture Source .NET (Dotnet) GÉNÉRATEUR GRAPHIQUE DE CARTE DE JEU par ricklekebekoi

Commentaires et avis

Commentaire de Mauricet le 16/02/2006 10:08:13

Bonjour
Programme intéressant mais j'ai une erreur de suite au Debug
this.CarteAffi.Reload;

Maurice

Commentaire de websys le 10/07/2006 22:53:33

Bonsoir à tous,
Je cherche à tester cette source, et à chaque fois que je veux enregistrer des infos on me renvois sur DEVENIR MEMBRE....  Alors que je suis déjà logué !

Franck

Commentaire de jfrot le 09/03/2007 14:53:52

Super programme, mais je n'arrive pas à placer les villes avec précision dans mon site car je n'ai pas les mêmes coordonnées de villes ...
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

Commentaire de nonold le 16/07/2008 11:23:55

Pas moyen de faire fonctionner la source.

Erreur sur le this.CarteAffi.Reload.

Commentaire de napples le 12/01/2009 13:29:38

Problème j'arrive pas à faire fonctionner le source.

Erreur sur le this.CarteAffi.Reload.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

carte E/S utiliser en c#?possible? [ par kach23 ] bonjour,quelqu'un pourraitil me donner le namespace/classe a utiliser pour manipuler une carte d'entree/sortie en c#(si c possible)ou si vous connaiss reseau et WMI [ par zaza42 ] Bonjour!j'essaye de faire un logiciel me permettant de changer l'ip de mes carte reseau ainsi qu'indiquer les serveurs DNS.POur le moment j'arrive a c Carte active? [ par danieltissier ] Je suis compl&#233;tement novice avec flash, et j'aurais souhait&#233; savoir si quelqu'un avais une id&#233;e sur la fa&#231;on de r&#233;alis&#233; Carte réseaux [ par abdoulax ] Est ce que qlq1 sait comment r&#233;cup&#233;rer les informations qui passe &#224; travers la carte r&#233;seaux, ainsi comment les manipuler. Si ya u raoming GPRS WIFI [ par sbsiam ] Bonjour tout le monde. je voudrait savoire si c'est possible d'accedrer aux proprietes des cartes reseaux disponible sur ma machine. en effet je veux Activer et desactiver et desactiver une carte reseau [ par sbsiam ] Bonjour Y a t il des fonctions C# pour activer et d&#233;sactiver une connexion r&#233;seau (ou carte r&#233;seau) et merci d'avance &nbsp;&nbsp;&n Déplacement d'image [ par mael45 ] Bonjour,Je dois d&#233;velop&#233; un programme qui me permet de tirer un itin&#233;raire &#224; l'aide la souris&nbsp;sur la carte. Je d&#233;ssine d [c#] Performance PictureBox dans Panel [ par scove ] Bonjour, Je d&#233;veloppe (avec un groupe projet) une application d'&#233;tude de comportement animal &#224; l'aide d'un GPS. En gros on doit affich acquisition de donnees [ par Moucave ] Bonjour a tous,&nbsp;&nbsp;&nbsp;Je suis en train de me demander si il etait possible de creer une application qui enregistrerait des donnees provenan textout en c# [ par Moucave ] Bonjour tout le monde,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Je suis en train de manipuler les picturebox en c# et je me trouve devant un probleme. J epl


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,700 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales