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

Python Discussion :

python + gm862-GPS


Sujet :

Python

  1. #21
    Membre confirmé
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 62
    Par défaut comment convertir de dd mm.mmm en un float?
    gps de gm862 localise via la commande at$gpsp=1 qui l'active puis at$gpsnmus en activant uniquement le gga à travers la commande: at$gpsnmus=1,1,0,0,0,0,0,0 (1er 1 pour démarrage et 2ème 1 pour activer gga)
    mon problème ici est le résultat de cette commande, il m'affiche le temps utc en hh:mm:ss,SSS (milliseconde), la latitude en format dd mm.mmmm (d=degré et m= minute) la longitude en ddd mm.mmmm (dd pour lat car elle varie entre 0 et 90° et ddd pour long car elle varie entre 0 et 180°)
    sur mon application vb.net de géolocalisation, j'ai intégré un webmapping pour lequel j'utilise les latitude et longitudes comme mot clé de recherche, mais là se situe mon grand prob: les coordonnées reçues via gm862-gps doivent etre basculés de dd mm.mmm en un nombre réèl: deux chiifres avant la virgule pour la lattitude et 3 pour la longitude: comment pourrais je les convertir avant de les saisir sur le moteur de recherche de webmapping?

  2. #22
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 309
    Par défaut
    Salut,

    Je pense que tu parles de ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    def dms_to_decimal(degrees, minutes, seconds):
        """Convert degrees, minutes, seconds into decimal degrees."""
        return (-1 if degrees < 0) else 1) * (float(degrees) + 
                                                minutes / 60.0 + 
                                                seconds / 3600.0)

  3. #23
    Membre confirmé
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 62
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Salut,

    Je pense que tu parles de ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    def dms_to_decimal(degrees, minutes, seconds):
        """Convert degrees, minutes, seconds into decimal degrees."""
        return (-1 if degrees < 0) else 1) * (float(degrees) + 
                                                minutes / 60.0 + 
                                                seconds / 3600.0)
    merci vins, peut tu me l'expliquer stp? je ne veux pas l'utiliser sans comprendre comment il fonctionne :'(

  4. #24
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 309
    Par défaut
    Tu fais bien de demander, ce n'est pas float() mais abs() ... je n'en étais qu'à mon premier café.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    def dms_to_decimal(degrees, minutes, seconds):
        """Convert degrees, minutes, seconds into decimal degrees."""
        return ((-1 if degrees < 0) else 1) * (abs(degrees) + 
                                                minutes / 60.0 + 
                                                seconds / 3600.0)
    En fait si les degrés sont négatifs c'est qu'ils sont comptés vers l'ouest pour la longitude ( 0, -179) ou vers le sud pour la latitude (0, -89) or en ajoutant des minutes et secondes à une valeur négative on ramène la valeur vers 0, ce qui est faux.

    Autrement dit, -20° + 30m + 15s nous remonte vers l'équateur de 30m15s, il faut donc faire (20° + 30m + 15s) * -1

    Suis-je clair ?

  5. #25
    Membre confirmé
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2012
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 62
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Tu fais bien de demander, ce n'est pas float() mais abs() ... je n'en étais qu'à mon premier café.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    def dms_to_decimal(degrees, minutes, seconds):
        """Convert degrees, minutes, seconds into decimal degrees."""
        return ((-1 if degrees < 0) else 1) * (abs(degrees) + 
                                                minutes / 60.0 + 
                                                seconds / 3600.0)
    En fait si les degrés sont négatifs c'est qu'ils sont comptés vers l'ouest pour la longitude ( 0, -179) ou vers le sud pour la latitude (0, -89) or en ajoutant des minutes et secondes à une valeur négative on ramène la valeur vers 0, ce qui est faux.

    Autrement dit, -20° + 30m + 15s nous remonte vers l'équateur de 30m15s, il faut donc faire (20° + 30m + 15s) * -1

    Suis-je clair ?
    merci vins c bien clair pour le signe
    reste maintenant à m'expliquer: veux tu dire que je dois ajouter au degré la somme des minutes et secondes pour aboutir à la valeur que je dois saisir dans l'interface de mapping?

  6. #26
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 309
    Par défaut
    Oui, c'est bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ((-1 if degrees < 0) else 1) * (abs(degrees) +  minutes / 60.0 +  seconds / 3600.0)
    J'ai l'habitude de ne pas dépasser 80 caractères parce que j'ai un petit appartement.

Discussions similaires

  1. Sauvegarder des trames GPS dans MySQL en Python
    Par Lprofessionnelle dans le forum Réseau/Web
    Réponses: 28
    Dernier message: 03/08/2015, 16h15
  2. [Python 3.X] Tracker GPS avec Python
    Par Opxilone dans le forum Général Python
    Réponses: 15
    Dernier message: 22/02/2015, 22h57
  3. GPS et trames NMEA -Python
    Par fluss01 dans le forum Général Python
    Réponses: 2
    Dernier message: 19/10/2011, 22h15
  4. Réponses: 6
    Dernier message: 03/05/2008, 11h29
  5. CORBA & PYTHON
    Par stan91stan dans le forum CORBA
    Réponses: 5
    Dernier message: 10/06/2004, 13h32

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