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

 C Discussion :

Comparer une position GPS avec une liste de POI


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19
    Points : 16
    Points
    16
    Par défaut Comparer une position GPS avec une liste de POI
    Bonjour,

    comment feriez vous pour comparer une position GPS (longitude, latitude)
    à une liste (fichier texte ou sql, peut importe)
    exemple de POI au format ASC (plus de 15 000 lignes) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ...
    55.50166 , -21.30224 , "Num 3461"
    55.42566 , -21.30207 , "Num 3457"
    55.30042 , -21.23435 , "Num 3455"
    55.30413 , -20.96288 , "Num 3456"
    55.65724 , -20.95719 , "Num 3458"
    55.48906 , -20.88669 , "Num 3460"
    ...
    mon application me donne ma position, mais je ne sais pas qu'elle est la meilleure méthode pour cherche si un POI de la liste est dans un rayon de xx metres de la mienne

    merci pour vos conseils

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 373
    Points : 23 629
    Points
    23 629
    Par défaut
    Tout dépend de la liste elle-même. Si elle n'est pas triée, tu es obligé de te palucher toutes les lignes. Si elle l'est, ta recherche sera plus efficace, mais l'ennuyeux, c'est que tu es obligé de considérer les lignes comme étant de taille fixe si tu veux pouvoir parcourir rapidement ton fichier.

    En revanche, le fait que ta source soit un fichier texte ou une base SQL importe beaucoup : dans le second cas, tu ne parcoureras pas ta liste toi-même, mais tu feras une requête en bonne et due forme et le résultat apparaîtra de lui-même.

    Mais en l'occurence, le format de ton fichier est tout-à-fait compatible avec un scanf élémentaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    char buffer[512];
    float longitude
    float latitude;
    char nom[512];
     
    ...
     
    while (fgets(buffer,512,f)==buffer)
    {
        sscanf (buffer,"%f,%f,%s",&longitude,&latitude,nom);
     
        ...
    }

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    En première approche, je dirais ordonner ta liste puis faire une recherche dichotomique jusqu'à trouver un pivot à partir duquel obtenir tes éléments. Mais, c'est plus un pb de math que de C. Va voir du côte du forum math dans un premier temps. Ensuite, l'implémentation devrait aller mieux.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19
    Points : 16
    Points
    16
    Par défaut
    merci pour vos pistes !
    je me renseigne coté algorithme sur le forum math

Discussions similaires

  1. Combien ca coute une position gps
    Par moutey dans le forum Composants
    Réponses: 7
    Dernier message: 21/04/2008, 13h44
  2. Réponses: 6
    Dernier message: 26/11/2007, 15h25
  3. Réponses: 6
    Dernier message: 02/06/2007, 01h07
  4. liste déroulante avec une case à cocher et une image
    Par kurul1 dans le forum C++Builder
    Réponses: 4
    Dernier message: 08/03/2007, 09h54
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

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