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 :

Une localisation plus précise que la triangulation


Sujet :

Android

  1. #1
    Membre du Club
    Homme Profil pro
    etuidiant
    Inscrit en
    Octobre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : etuidiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 64
    Points : 50
    Points
    50
    Par défaut Une localisation plus précise que la triangulation
    Salut à tous, dans mon app j'aimerais pouvoir localiser l'utilisateur de manière précise, j'ai suivi pas mal de tuto mais je n arrive pas à obtenir un résultat assez précis (en général on me localise comme chez mes voisins ou un peu plus loin, un bon 30-40 mètres). Et j'ai remarqué que lorsque je désactive la localisation par satellite GPS la localisation ne marche pas, si j ai bien compris elle marche par triangulation l'option du smartphone "utiliser réseaux sans fil" et donc le réseau mobile. Mais cette technique n'a pas l'air d'etre très précise. Voici mon code :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    				locationListener = new MyLocationListener();
    				lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);	//control location updates
    				//lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 35000, 2, locationListener);
     
    				lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 35000, 2, locationListener);
    				/* On va choper le best providers */
    				//Criteria crit = new Criteria();
    				//towers = lm.getBestProvider(crit, false);	
    				//Location location = lm.getLastKnownLocation(towers);
     
     
    				Criteria crit = new Criteria();
    				crit.setAccuracy(Criteria.ACCURACY_FINE); //Or whatever criteria you want
    				towers = lm.getBestProvider(crit, true);
     
    				Location location = lm.getLastKnownLocation(towers);
     
     
    	        	if (location != null) {
     
    	        		lat = location.getLatitude();
    	        		longi = location.getLongitude();
     
    	        		String latit =   String.valueOf(lat);
    	        		String longit = String.valueOf(longi);
     
    	        		tvLat = (TextView) view.findViewById(R.id.tvLatitude);
    	        		tvLongi = (TextView) view.findViewById(R.id.tvLongitude);
    	        		tvAdr = (TextView) view.findViewById(R.id.tvAdresse);
     
     
    	    			tvLat.setText(latit);
    	    			tvLongi.setText(longit);
     
    	    			//Le geocoder permet de récupérer ou chercher des adresses
    	    			//gràce à un mot clé ou une position
     
    					// to access the adress
    					Geocoder geocoder = new Geocoder(NoteReminder.this, Locale.getDefault());
     
    					try{
    						//max result = 1 because we only want one result
    						List<Address> address = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
     
    						if (address.size() > 0){
    							String display ="";
    							for(int i = 0; i<address.get(0).getMaxAddressLineIndex(); i++){
     
    								display += address.get(0).getAddressLine(i) + "\n";
    							}
    	    					tvAdr.setText(display);
    						}
    						else{
    	    					tvAdr.setText("L'adresse n'a pu être déterminée");
    						}
    					} catch (IOException e) {
    						// TODO Auto-generated catch block
    						e.printStackTrace();
     
    						String error = e.toString();
     
     
    	  					tvAdr.setText(error);
    					}
    	        	}	
    	        	else{
    	        		Toast.makeText(getBaseContext(),
     
    	        		"Localisation actuelle FOIRE ",
     
    	        		Toast.LENGTH_SHORT).show();
     
    	        	}
    Voila et je comprend pas pq mon prog foire quand j active "utilisez satellite GPS" sur mon android :s

    Est ce que quelqu'un aurait une idée ?

  2. #2
    Expert éminent

    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
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Au lieu de récupérer que la dernière donnée tu devrais déjà utiliser un listener pour tes tests ?

    Ensuite la précision avec le réseaux Wifi n'est vraiment pas terrible, je pense que tes 30-40 mètres tu ne les auras presque jamais :/


    Voila et je comprend pas pq mon prog foire quand j active "utilisez satellite GPS" sur mon android :s
    C'est que la dernière position récupéré avec cette précision n'existe pas .
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  3. #3
    Membre du Club
    Homme Profil pro
    etuidiant
    Inscrit en
    Octobre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : etuidiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 64
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par Feanorin Voir le message
    Bonjour,

    Au lieu de récupérer que la dernière donnée tu devrais déjà utiliser un listener pour tes tests ?

    Ensuite la précision avec le réseaux Wifi n'est vraiment pas terrible, je pense que tes 30-40 mètres tu ne les auras presque jamais :/




    C'est que la dernière position récupéré avec cette précision n'existe pas .
    Salut merci de ta réponse ! J'ai regarder pas mal de tuto mais je ne comprend pas bien le role du listener dans mon probleme et quand tu dis que "la dernière position récupéré avec cette précision n'existe pas" cela signifie que mon GPS ne repère pas du tout ma position ?

  4. #4
    Expert éminent

    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
    Points : 9 149
    Points
    9 149
    Par défaut
    Salut merci de ta réponse ! J'ai regarder pas mal de tuto mais je ne comprend pas bien le role du listener dans mon probleme et quand tu dis que "la dernière position récupéré avec cette précision n'existe pas" cela signifie que mon GPS ne repère pas du tout ma position ?
    Bonjour,

    Le rôle de ton listener est de récupérer une position toutes les x secondes que tu lui aura donner en entrée.

    Pour la fonction getLastKnownLocation en fait il faut savoir qu'elle te retourne la dernière position qu'elle avait.
    Donc c'est possible qu'en fonction des critères aucune position ne soit retrouné.
    Attention cette fonction est capable de te retourner une position à New York alors que tu te trouves à Paris par exemple . Si ton gps était actif à cet endroit et n'a pas était activé depuis.
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  5. #5
    Membre du Club
    Homme Profil pro
    etuidiant
    Inscrit en
    Octobre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : etuidiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 64
    Points : 50
    Points
    50
    Par défaut
    Depuis j'ai modifié mon code pour qu'il regarde dans un premier temps si la localisation par gps est activé ainsi que la localisation par mobile, si les 2 sont activé j'essaye d'abord de localiser mon emplacement via le gps avec des critères, si ca ne marche pas je passe sans critère et s'il ne retourne rien je localise ma position avec la localisation par mobile une fois avec critère et encore sans si ca ne marche pas. J'ai l'impression que la localisation par gps ne marche jms et que mon programme fini toujour par me localiser par le réseau mobile que mon gps soit activé ou non j'obtiens toujours la meme position :S Sinon pour le listener je préfèrerait pas l'utiliser car je dois vérifier la position et marquer l'adresse lors de l'ouverture de l'activité sans que celle ci ne change

  6. #6
    Expert éminent

    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
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Non mais corrigez moi si je me trompe, mais le GPS est très energivore, et pour cette raison il n'est vraiment "actif à 100%" (cad à tracker les satellites) que si une application l'utilise non ?
    Dans tous les cas, rien n’empêche d'avoir le listener le temps de l'activité et affiner au fur et à mesure la position actuelle non ?
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  7. #7
    Membre du Club
    Homme Profil pro
    etuidiant
    Inscrit en
    Octobre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : etuidiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 64
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par nicroman Voir le message
    Non mais corrigez moi si je me trompe, mais le GPS est très energivore, et pour cette raison il n'est vraiment "actif à 100%" (cad à tracker les satellites) que si une application l'utilise non ?
    Dans tous les cas, rien n’empêche d'avoir le listener le temps de l'activité et affiner au fur et à mesure la position actuelle non ?
    Oui c ets le cas mais si je veux une bonne localisation autant l'utiliser non ?

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2012
    Messages : 35
    Points : 27
    Points
    27
    Par défaut
    Peut être que tu ne capte pas le satellite la ou tu fais tes tests, essaye a d autre endroit et voi si cela change quelque chose ! Moi dans ma voiture souvent lorsque je suis à l'arret le gps ne capte pas immédiatement de signal

  9. #9
    Expert éminent

    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
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Karly Voir le message
    Oui c ets le cas mais si je veux une bonne localisation autant l'utiliser non ?
    Absoluement, mais bonne localisation ca veut dire attendre 20/30s histoire que le GPS lock correctement...
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/07/2010, 12h11
  2. Centrer une image plus large que \textwidth
    Par scalande dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 4
    Dernier message: 01/03/2009, 19h52
  3. Réponses: 6
    Dernier message: 18/02/2009, 18h16
  4. Barre de défilement dans une figure plus grande que l'écran
    Par camillechambon dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 23/04/2007, 10h40
  5. [JFrame] Création d'une fenetre plus grande que l'ecran
    Par thetoctoc dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 23/09/2004, 11h05

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