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 :

Probléme sur géolocalisation


Sujet :

API standards et tierces Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 18
    Par défaut Probléme sur géolocalisation
    Bonjour

    Dans une appli je veux ajouter une fonction de géolocalisation pour trouver les commerces situés dans un rayon de 50 kms.

    dans mon manifeste j'ai ajouté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <uses-permission android:name="android.permission.INTERNET">
    	</uses-permission>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION">
    	</uses-permission>
    	<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION">
    	</uses-permission>
    Je cherche à me localiser, avec ce code qui doit me donner la longitude et la latitude :

    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
    private void obtenirPosition() {
    		//on démarre le cercle de chargement
    		setProgressBarIndeterminateVisibility(true);
    		//On demande au service de localisation de nous notifier tout changement de position
    		//sur la source (le provider) choisie, toute les minutes (60000millisecondes).
    		//Le paramètre this spécifie que notre classe implémente LocationListener et recevra
    		//les notifications.
    		lManager.requestLocationUpdates(choix_source, 60000, 0, this);
    	}
     
    	private void afficherLocation() {
    		//On affiche les informations de la position a l'écran
    		((TextView)findViewById(R.id.latitude)).setText(String.valueOf(location.getLatitude()));
    		((TextView)findViewById(R.id.longitude)).setText(String.valueOf(location.getLongitude()));
    		((TextView)findViewById(R.id.altitude)).setText(String.valueOf(location.getAltitude()));
    	}
    j'ai ajouté un témoin de recherche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //On spécifie que l'on va avoir besoin de gérer l'affichage du cercle de chargement
            requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
    Quand je lance l'appli la recherche s'effectue mais je n'ai pas d'affichage de la position. Est-ce normal ?

    Merci pour vos réponses

  2. #2
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Bonjour ,

    Comment récupères tu la variable location ?

    Je te met un exemple

    http://developer.android.com/guide/t...-location.html

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 18
    Par défaut
    Merci pour ta réponse, mais avec cette modif, cela ne change rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    private void obtenirPosition() {
    		//On récupère le service de localisation
            lManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
            reinitialisationEcran();
    		//on démarre le cercle de chargement
    		setProgressBarIndeterminateVisibility(true);
    		//On demande au service de localisation de nous notifier tout changement de position
    		//sur la source (le provider) choisie, toute les minutes (60000millisecondes).
    		//Le paramètre this spécifie que notre classe implémente LocationListener et recevra
    		//les notifications.
    		lManager.requestLocationUpdates(choix_source, 60000, 0, this);
    	}

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 18
    Par défaut
    Dans l'exemple que tu m'indiques

    makeUseOfNewLocation est surligné et le code me demande de creer la méthode
    Cette méthode elle contient quoi ?

  5. #5
    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,

    il me semble que la méthode requestLocationUpdates() que ton LocationManager appel, prend également en paramètres la distance minimale en mètres.(le 3ème paramètres)

    essaye de mettre une autre valeur que 0.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 18
    Par défaut
    Comme cela ?

    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
    20
    21
    //On récupère le service de localisation
        			        lManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
        			        setProgressBarIndeterminateVisibility(true);
     
        					// Define a listener that responds to location updates
        					LocationListener locationListener = new LocationListener() {
        					    public void onLocationChanged(Location location) {
        					      // Called when a new location is found by the network location provider.
        					      makeUseOfNewLocation(location);
        					    }
     
    							public void onStatusChanged(String provider, int status, Bundle extras) {}
        					    public void onProviderEnabled(String provider) {}
        					    public void onProviderDisabled(String provider) {}
        					  };
        					// Register the listener with the Location Manager to receive location updates
        					  lManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 60000, 0, locationListener);
        					longitude = (String.valueOf(location.getLongitude()));
        					latitude=(String.valueOf(location.getLatitude()));
        					}       
        				})

  7. #7
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Bonjour,

    Dans l'exemple que je t'ai donnée makeUseOfNewLocation correspond à une procédure que tu peux créer qui traitera de la location obtenue .

    C'est pour ça que je t'ai demandé comment tu obtenais ta location ?
    Comment récupères tu la variable location ?
    Ta location tu la récupère dans le listener comme tel

    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
    // Define a listener that responds to location updates
    LocationListener locationListener = new LocationListener() {
        public void onLocationChanged(Location location) {
          // Called when a new location is found by the network location provider.
          // la tu apelles la fonction de traitement de la location 
         // pour ton cas le refresh sur tes textviews
          makeUseOfNewLocation(location);
        }
     
        public void onStatusChanged(String provider, int status, Bundle extras) {}
     
        public void onProviderEnabled(String provider) {}
     
        public void onProviderDisabled(String provider) {}
      };

    EDIT : oui.

Discussions similaires

  1. Problème sur la recherche fulltext en v4 !
    Par poppa dans le forum Requêtes
    Réponses: 3
    Dernier message: 13/05/2004, 23h06
  2. Problème sur fiche MDIchild
    Par nivet dans le forum Composants VCL
    Réponses: 6
    Dernier message: 23/01/2004, 08h07
  3. Problème sur GetPrivateProfileString ???
    Par Bordelique dans le forum Langage
    Réponses: 7
    Dernier message: 25/06/2003, 22h15
  4. Problème sur une requête INSERT
    Par Marion dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/06/2003, 08h45
  5. problème sur une requête!!!!!
    Par Mcgrady_01 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/06/2003, 01h17

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