IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Android Discussion :

Calcul de l'angle entre 2 points GPS


Sujet :

API standards et tierces Android

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 61
    Par défaut Calcul de l'angle entre 2 points GPS
    Bonjour a tous,

    je dois faire un Algo permettant de calculer l'angle entre 2 points GPS.

    en fait, je connais les coordonnées latitude et longitude des 2 points ainsi que la distance entre les deux.
    la question est comment faire pour calculer l'angle entre ces 2 points?

    si vous avez des idées n'hésitez pas s'il vous plait.

    merci d'avance.

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Salut,

    Je ne m'y connais pas forcément en coordonnées GPS / métrique GPS, mais c'est quoi exactement la définition d'un "angle entre deux points" ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 61
    Par défaut
    en fait je connais les coordonnées GPS (longitude et latitude ) de ma position, et je connais également les coordonnées (longitude et latitude ) d'un POI et je souhaite trouver l'angle entre les 2 pour pouvoir afficher ou pas le POI en fonction de l'angle de vue de mon téléphone.

    j'ai trouvé ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    float dy = lat2 - lat1;
    float dx = cos(pi/180*lat1)*(long2-long1);
    float angle = atan2(dy/dx);
    je suis entrain de le tester pour voir ce que ca va donner.
    merci beaucoup d'être intéressé.

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /**
             * @autor Jahbromo
             * @param location : Origin location
             * @param loc : Destination location;
             * @return angle betwen origin location and loc in degree
             */
     
    	public float getAngle(Location location,Location loc)
    	{
    		return location.bearingTo(location);
    	}

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Par défaut
    Autre solution :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    /**
             * @autor Jahbromo
             * @param latitudeOrigine
             * @param longitudeOrigne
             * @param latitudeDest
             * @param longitudeDest
             * @return angle
             */
    	protected float getAngle(double latitudeOrigine,double longitudeOrigne, double latitudeDest,double longitudeDest) {
    		double longDelta = longitudeDest - longitudeOrigne;
    		double y = Math.sin(longDelta) * Math.cos(latitudeDest);
    		double x = Math.cos(latitudeOrigine)*Math.sin(latitudeDest) -
    		Math.sin(latitudeOrigine)*Math.cos(latitudeDest)*Math.cos(longDelta);
    		double angle = Math.toDegrees(Math.atan2(y, x));
    		while (angle < 0) {
    			angle += 360;
    		}
    		return (float) angle % 360;
    	}
    Donne l'angle par rapport au Nord

  6. #6
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    remarque: j'ai téléchargé sur Androïd une application Google de suivi de trajet... apparemment les auteurs ne sont pas capables de faire des calculs précis: je me suis retrouvé à 200m au dessous du niveau de la mer et quand je cours je fais des bonds de 100 mètres à gauche ou à droite!
    Donc la même remarque s'applique ici: gaffe à la précision des calculs (vu la petitesse des angles!)

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 61
    Par défaut
    salut,

    merci les gars pour toutes ces infos.
    j'ai testé l'algo que j'ai mi en haut et ca m'a donné des résultat assez satisfaisant, je vais également tester l'algo que jahbromo m'a proposé et je vous ferez mon retour.

    merci encore les gars.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 61
    Par défaut
    salut,

    j'ai testé les deux Algo et malheureusement ils ne donne pas le même résultat.

    donc je suis partie sur la solution de jahbromo car elle me parait plus crédible.

    merci encore.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Calculer un angle entre 3 points avec des coordonnées X Y Z
    Par mattparla dans le forum MATLAB
    Réponses: 6
    Dernier message: 28/11/2009, 17h43
  2. Calcul de l'angle entre 2 points
    Par Spaeda dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 12/08/2009, 13h06
  3. Calcul de l'angle entre trois points en fonction du sens
    Par NeraOne dans le forum Mathématiques
    Réponses: 4
    Dernier message: 10/07/2007, 17h27
  4. calcule d'angle entre 3 points d'une matrice
    Par bmw13fr dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 08/04/2006, 18h56
  5. angle entre 3 points
    Par elekis dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 27/05/2005, 20h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo