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 des données de localisation à l'initialisation de l'activité


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de nbenbourahla
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 41
    Par défaut Récupération des données de localisation à l'initialisation de l'activité
    Bonjour,

    Voici mon problème, je cherche le moyen de récupérer les données de localisation du téléphone quand l'application démarre.
    Pour l'instant j'arrive juste à récupérer ses données si y a un changement, grâce à onLocationChanged, mais je n'arrive pas à en récupére au lancement de l'application.

    Comment je peux faire svp

    Cordialement

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Peux tu nous envoyer un bout de code afin qu'on le complète / commente. C'est plus facile pour t'aider.

    Merci.

  3. #3
    Membre émérite
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Par défaut
    Salut,

    Comme le dit MrDuChnok met du code ce sera mieux!
    Mais pour récupérer les données GPS, tu peux utiliser l'objet LocationManager avec la méthode getLastKnownLocation

  4. #4
    Membre Expert
    Avatar de nbenbourahla
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 41
    Par défaut
    Merci de vos réponse.
    J'ai deja essayé le getLastKnownLocation sa retourne tous le temps null car à l'initialisation y a pas de location deja connu.

    Voici ma classe qui s'occupe de sa

    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
     
    public final class DisplayMapActivity extends MapActivity implements
    		LocationListener
    {
     
    	private MapView			mapView;
    	private GeoPoint			p;
    	private MapController		mc;
    	private MapOverlay		mapOverlay		= null;
    	private List<Overlay>		listOfOverlays	= null;
    	private double			lat			= 0;
    	private double			lng			= 0;
    	private LocationManager	lm;
     
    	@SuppressWarnings("deprecation")
    	@Override
    	public final void onCreate(final Bundle savedInstanceState)
    	{
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.map);
     
    		mapView = (MapView) findViewById(R.id.mapView);
    		final LinearLayout zoomLayout = (LinearLayout) findViewById(R.id.zoom);
    		final View zoomView = mapView.getZoomControls();
    		zoomLayout.addView(zoomView, new LinearLayout.LayoutParams(
    				LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
     
    		mapView.displayZoomControls(true);
     
    		mc = mapView.getController();
     
    		lm = (LocationManager) this.getSystemService(LOCATION_SERVICE);
    		lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
     
                    // Valeur par défaut car je n'arrive pas a récupérer ceux de l'initialisation (c'est cette partie que je dois remplacer par la localisation au démarrage)
    		lat = 48.8157060;
    		lng = 2.3628730;
    		p = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6));
    		mc.animateTo(p);
    		mc.setCenter(p);
    		mc.setZoom(17);
    	}
     
    	/**
             * Methode appeler quand la location change
             */
    	public void onLocationChanged(Location location)
    	{
    		lat = location.getLatitude();
    		lng = location.getLongitude();
    		Toast.makeText(getBaseContext(),
    				"Location change to : Latitude = " + lat + " Longitude = " + lng,
    				Toast.LENGTH_SHORT).show();
    		p = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6));
    		mc.animateTo(p);
    		mc.setCenter(p);
    		mc.setZoom(17);
    	}
     
    	@Override
    	protected final boolean isRouteDisplayed()
    	{
    		return false;
    	}
     
    	 ..................
     
    	class MapOverlay extends com.google.android.maps.Overlay
    	{
    		@Override
    		public final boolean draw(Canvas canvas, MapView mapView, boolean shadow,
    				long when)
    		{
    			super.draw(canvas, mapView, shadow);
    			Paint paint = new Paint();
    			Point myScreenCoords = new Point();
    			mapView.getProjection().toPixels(p, myScreenCoords);
    			paint.setStrokeWidth(1);
    			paint.setARGB(255, 255, 255, 255);
    			paint.setStyle(Paint.Style.STROKE);
    			Bitmap bmp = BitmapFactory.decodeResource(getResources(),
    					R.drawable.marker6);
    			canvas.drawBitmap(bmp, myScreenCoords.x, myScreenCoords.y, paint);
    			canvas
    					.drawText("Here I am...", myScreenCoords.x, myScreenCoords.y, paint);
    			return true;
    		}
     
    	}
    Voila j'espére que sa pourra vous aidé a comprendre ce que je veux faire

    Cordialement

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Par défaut
    Je crois quand tu appelle cette methode dans la methode onCreate...., il tire la location que tu pourra facilement utiliser pour avoir les autres coordonnée

    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
     
     
     
    	Location locationx;
     
    	public Location GetLocation()
    	{
    		LocationManager locationManager=(LocationManager)getSystemService(Context.LOCATION_SERVICE);
    	     	locationx =locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
     
    		LocationListener locationListener= new LocationListener() {
     
    			public void onStatusChanged(String provider, int status, Bundle extras) {
    			}
     
    			public void onProviderEnabled(String provider) {
    			}
     
    			public void onProviderDisabled(String provider) {
    			}
     
    			public void onLocationChanged(Location locations) {
    				locationx=new Location(locations);
    				System.out.println("Latitude============"+locationx.getLatitude());
    				System.out.println("Longitude============"+locationx.getLongitude());
     
    			}
    		};
    		locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 100,
    				30, locationListener);
    		return locationx;
    	}

  6. #6
    Invité de passage
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 1
    Par défaut
    Je suis en train de faire un programme nécessitant la géolocalisation.
    Pour obtenir les dernières coordonnées connues, voici comment j'ai fait :

    Les importations :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    import android.location.Criteria;
    import android.location.Location;
    import android.location.LocationListener;
    import android.location.LocationManager;
    Déclaration de ma classe Map :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class Map extends MapActivity implements LocationListener {
    Déclaration des variables directement dans la classe Map :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private double my_latitude;
    private double my_longitude;
    private long update_time=5000; //milliseconds
    private float update_distance=5; //meters
    Dans le onCreate :
    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
    // On récupère les coordonnées GPS
    /// On récupère le gestionnaire de localisation
    LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
    /// On définit les critère de choix du meilleur système de localisation
    Criteria criteria = new Criteria();
    criteria.setAccuracy(Criteria.ACCURACY_FINE);
    criteria.setAltitudeRequired(false);
    criteria.setBearingRequired(false);
    criteria.setCostAllowed(true);
    criteria.setPowerRequirement(Criteria.POWER_LOW);
    String provider = lm.getBestProvider(criteria, true);
    /// On demande au gestionnaire de localisation de faire des mise-a-jour de la position.
    lm.requestLocationUpdates(provider, update_time, update_distance, this);
    /// On récupère la dernière position connu
    Location my_location = lm.getLastKnownLocation(provider);
    my_latitude = my_location.getLatitude()*1E6;
    my_longitude = my_location.getLongitude()*1E6;
    Si ça peut aider

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupération des données d'un formulaire
    Par placenargac dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 04/02/2006, 15h10
  2. récupération des données via une liste déroulante
    Par rahan_dave dans le forum Access
    Réponses: 1
    Dernier message: 13/10/2005, 12h27
  3. [HTML][FORMULAIRE] Probleme dans la récupération des données
    Par baddounet dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 15/08/2005, 18h51
  4. Réponses: 2
    Dernier message: 20/02/2004, 08h47
  5. Réponses: 13
    Dernier message: 20/03/2003, 08h11

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