2013-06-03 2 views
1

Sur une carte, je veux montrer la direction du chemin de mon emplacement à un certain endroit. J'ai mis en place la logique pour dessiner le chemin sur la carte déjà, mais j'ai des problèmes déterminés ma position actuelle.Comment obtenir les coordonnées du point bleu dans les cartes android v2

J'ai utilisé un nouvel emplacement Location pour récupérer mon emplacement actuel, comme il est décrit dans cet article: http://developer.android.com/training/location/retrieve-current.html, et j'ai lu quelque part que les nouvelles cartes API v2 utilise la même technique pour obtenir mon emplacement.

Quoi qu'il en soit, lorsque je dessine les directions du chemin sur la carte de mon emplacement à celui désiré, le point de départ du chemin est différent du point bleu qui marque ma position actuelle.

Le point bleu indique la bonne position, mais pas ma mise en œuvre. Donc, y a-t-il un moyen d'obtenir les coordonnées du marqueur de point bleu, quelque chose comme map.getMyLocationMarker().getLocation() ou dois-je trouver un autre moyen d'obtenir ma position manuellement?

MISE À JOUR

J'ai oublié que je l'ai laissé cette question ouverte, mais voici ma réponse ci-dessous.

Répondre

-1

C'était en fait une erreur vraiment stupide que j'ai faite.

Mais voici la réponse. La procédure décrite dans le lien dans la question est la bonne chose à faire. Mon problème était que j'avais sauvegardé les données récupérées dans une nouvelle clé de préférences partagées, et je la lisais à partir de l'ancienne où le mauvais emplacement avait été sauvegardé. Ouais c'est assez bête :)

Alors suivez le tutoriel sur le portail de développeur Android et il n'y aura pas d'erreurs avec elle.

+0

Pouvez-vous me donner le code? map.getMyLocation() ne fonctionne pas pour moi –

0

La réponse originale était d'utiliser setMyLocationChangeListener() on GoogleMap, pour être informé des changements "point bleu". C'est maintenant obsolète.

Si vous pouvez créer un exemple de projet reproduisant votre problème, vous pouvez ajouter file an issue à ce projet. Ce que vous faites est le remplacement officiel des méthodes obsolètes, et donc on espère que votre code fonctionnera correctement. Si vous posez un problème, et si vous y réfléchissez, postez un lien ici, car je voudrais garder un œil dessus.

3
Location findme = mMap.getMyLocation(); 
     double latitude = findme.getLatitude(); 
     double longitude = findme.getLongitude(); 
     LatLng latLng = new LatLng(latitude, longitude); 

Ceci vous donnera la latitude et la longitude de votre position.

+0

'getMyLocation()' renvoie la valeur null. Existe-t-il des prérequis avant d'appeler cette méthode? – djandreski

+0

@djandreski 'GoogleMap.setMyLocationEnabled' est requis. –

1

Comme méthode googlemyMap.getMyLocation() est dépréciée ...

Meilleure solution simple à ce jour que j'ai trouvé

Obtenir l'emplacement actuel et le centre de l'appareil photo sur le marqueur. L'éditeur Android Studio voit qu'il y a une erreur mais lorsque vous l'exécutez, il n'y a pas de problème avec le code.

LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
Criteria criteria = new Criteria(); 
Location location = locationManager.getLastKnownLocation(locationManager.getBestProvider(criteria,false)); 
if (location != null) 
{ mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(location.getLatitude(), location.getLongitude()), 13)); 

LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
     Criteria criteria = new Criteria(); 
     Location location = locationManager.getLastKnownLocation(locationManager.getBestProvider(criteria,false)); 

     if (location != null) 
     { 
      mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(location.getLatitude(), location.getLongitude()), 13)); 

      CameraPosition cameraPosition = new CameraPosition.Builder() 
        .target(new LatLng(location.getLatitude(), location.getLongitude()))  // Sets the center of the map to location user 
        .zoom(17)     // Sets the zoom 
        .build();     // Creates a CameraPosition from the builder 
      mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); 
     } 
     LatLng goztepe = new LatLng(location.getLatitude(), location.getLongitude()); 
     mMap.addMarker(new MarkerOptions().position(goztepe).title("Göz Göz GÖZTEPE")); 

expliqué here.

Questions connexes