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

Android Discussion :

Récupération de position


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 334
    Par défaut Récupération de position
    Bonjour,

    Je n'arrive pas à récupérer la position de l'utilisateur.
    En fait, ça fonctionne dehors, par contre dedans non.
    J'écoute le Network Provider et je tente de récupérer la dernière position qui est toujours null.
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mLocationManager.requestLocationUpdates(provider, 5000, 0, listener);
    location = mLocationManager.getLastKnownLocation(provider);
    Alors je me suis dit que peut être mon wifi où bien mon réseau gsm ne fonctionnait pas.
    Mais ça fonctionne très bien quand je lance l'appli map de google.

    Merci d'avance.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2010
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 108
    Par défaut
    Bonjour, peut etre en utilisant d'autre location manager : ICI.

    Ou alors, utiliser un LocationListener avec ca methode :
    public void onLocationChanged(Location location).


    N’hésitez pas a donner plus de précision sur ce que vous souhaitez faire réellement.

    Cordialement, Raphael

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur Java / C++
    Inscrit en
    Mars 2013
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java / C++

    Informations forums :
    Inscription : Mars 2013
    Messages : 128
    Par défaut
    Bonjour dawadam,

    Pourquoi utilises-tu seulement le réseau pour localiser l'utilisateur?

    Si tu veut trouver sa position le plus rapidement possible, il faudrait utiliser au moins deux providers, le réseau et le GPS.

    Le location manager, dans la documentation fourni par raph-68i, te permet de récupérer la liste des providers dispo. Il y a même une méthode te donnant le nom du provider plus adapté en fonction de certains critères.

    Dans tous les cas, dis toi aussi que la localisation sous android peut-être longue, très longue... Une galaxy note 10.1 en wi-fi et GPS on sous Google Map, ne m'a toujours pas trouvé au bout de 30 min d'attente, bon ok j'étais un intérieur mais quand même. Et dès que je suis sorti dans le jardin, pof il a mis deux secondes.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 334
    Par défaut
    Merci pour vos réponse.
    J'utilise bien le LocationManager pour écouter les Providers.
    Dehors, j'arrive à récupérer le signal du GPS, par contre en intérieur jamais.
    Je pensais que le Network Provider servait justement en intérieur, mais je n'ai pas réussi à obtenir de positionnement.
    Ce que je ne comprend pas c'est qu'avec l'application google map, le positionnement est connu, mais avec une autre, tel que Arround Me, il n'est pas trouvé, comme avec mon application.

  5. #5
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Heu... le GPS ça ne marche pas en intérieur hein !

    Pour faire un fix initial en GPS il faut une ligne dégagée (par de plafond/mur/arbre) vers trois satellites. Ensuite, il est possible de "conserver" une position correcte avec deux satellites seulement, mais dès qu'il n'y a plus qu'un satellite accessible, pof... la liaison GPS est "perdue", et il faut à nouveau 3 satellites...
    De toute manière, c'est assez simple: tout ce que vous avez avec le satellite est une distance, un identifiant (et donc un point d'origine).
    1 satellite visible => sphere => ellipse sur la terre (sans altitude).
    2 satellites visibles => cercle => deux points sur la terre (toujours sans altitude)
    3 satellites visibles => point => 1 point sur la terre (+ altitude)
    Si on passe de 3 à 2, en fonction de la position précédente, il est possible de conserver le "seul" point logique, ça continue de marcher.... Par contre, quand on repasse à 1... plus de salut possible. Et quand on sait qu'un simple parebrise athermique empêche la réception satellitaire, il est évident qu'en intérieur, pas de GPS possible.

    Pour les autres providers:

    3G/2G: les "antennes relais" envoient (parfois, pas toujours), leur position, et leur puissance... En fonction de la puissance reçue on estime une distance à la tour (puissance rapport de 1 / distance²)... Dès qu'on a deux antennes dispos, on peut avoir une estimation de position.

    Network: Le "WiFi" peut aider, dans le sens ou Google maintient une map (anonyme) des réseaux wifi => positions GPS repérées... Il suffit de faire un fix GPS avec le WiFi activé (et l'aide au positionnement de google) proche d'une borne WiFi visible, pour que la position soit associée à la borne WiFi. Plus tard, GPS désactivé, WiFi activé quand cette borne est visible, une estimation de position est possible.

    Donc l'idéal est bien d'utiliser *tous* les providers à disposition, et recevoir ainsi la meilleure estimation possible.

    Quant au "getLastKnownLocation" il y a de bonnes chances pour que cela renvoit "null" (pas de last-kown location), en fonction de la durée de vie des échantillons, et de plein d'autres paramètres...

    C'est pourquoi, quand une activité *va* avoir besoin d'une position (envoi d'un message sur un click bouton par exemple) elle va commencer à recevoir les position updates dès l'ouverture de l'activité.
    Lors de l'appui sur le bouton, si on a une position, tant mieux.
    Sinon, on attend que cette position arrive.

Discussions similaires

  1. Réponses: 0
    Dernier message: 09/06/2009, 05h01
  2. Réponses: 5
    Dernier message: 09/09/2006, 23h49
  3. Problèmes de récupération de position
    Par thedarwin dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/07/2006, 11h03
  4. [SQL] Récupération de la position d'un élément
    Par Kerod dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 16/05/2006, 02h55

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