web-dev-qa-db-fra.com

Android - Comment lancer l'intention de la carte Google dans l'application Android avec certains emplacements, niveaux de zoom et marqueurs

L’intention de la carte ne fonctionne pas avec un niveau de zoom spécifique ni avec un marqueur personnalisé

    float lat = 40.714728f;
    float lng = -73.998672f;

    String maplLabel = "ABC Label";
    final Intent intent = new Intent(Android.content.Intent.ACTION_VIEW,
            Uri.parse("geo:0,0?q="+lat+","+lng+"&z=16 (" + maplLabel + ")"));
    startActivity(intent);

Quelqu'un sait ce qui ne va pas? ou comment faire? Je veux montrer la carte de certains (lat, lng) avec un marqueur d’étiquette personnalisé à un niveau de zoom spécifique.

23
umirza47

Essayez la solution suivante: 

double latitude = 40.714728;
double longitude = -73.998672;
String label = "ABC Label";
String uriBegin = "geo:" + latitude + "," + longitude;
String query = latitude + "," + longitude + "(" + label + ")";
String encodedQuery = Uri.encode(query);
String uriString = uriBegin + "?q=" + encodedQuery + "&z=16";
Uri uri = Uri.parse(uriString);
Intent intent = new Intent(Android.content.Intent.ACTION_VIEW, uri);
startActivity(intent);

Le crédit va ici: Réponse

Je crois que le problème avait à voir avec les espaces dans votre étiquette. Le codage de la chaîne de requête éliminera le problème en remplaçant les espaces par des caractères valides

81
dymmeh
Intent intent = new Intent(Android.content.Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?daddr=" + location.getLatitude() + "," + location.getLongitude()));
startActivity(intent);
1

http://developer.Android.com/guide/components/intents-common.html#Maps

Il a à peu près tout ce qui concerne l'intention de Google Maps.

1
Naren

Afficher l'emplacement dans l'application Cartes:

Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
String data = String.format("geo:%s,%s", latitude, longitude);
if (zoomLevel != null) {
    data = String.format("%s?z=%s", data, zoomLevel);
}
intent.setData(Uri.parse(data));
startActivity(intent);
1
user3150090