begin process at 2010 02 10 01:18:16
  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é :23 229 / 1 230

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

RECHERCHE DE DEUX SOUS ENSEMBLE DONT LES SOMMES DES ÉLÈMENTS... par deadhand
Source avec Zip Source avec une capture Source .NET (Dotnet) METHODE GRAPHIQUE EN PROGRAMMATION LINÉAIRE par vindos
Source avec Zip Source avec une capture Source .NET (Dotnet) RECTANGLES par krissssss
Source avec Zip Source avec une capture SODOKU MUSING (PERMUTATION & SODOKU) par krissssss
Source avec Zip Source avec une capture Source .NET (Dotnet) ANALYSEUR LEXICAL ET SYNTAXIQUE DES FORMULES PROPOSITIONNELL... par boutemine

 Sources en rapport avec celle ci

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...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

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 : 0,967 sec (4)

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