Je conçois une application dans laquelle je souhaite afficher un emplacement spécifique sur la carte. Je passe String
d'adresse qui est déjà placée sur Google Map
. Voici mon code Intent
.
String url = "http://maps.google.com/maps?daddr="+address;
Intent intent = new Intent(Android.content.Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
Mais cela me donne Google Map pour obtenir une direction. Je sais pourquoi, alors, parce que j’avais utilisé daddr
dans url
mais je ne savais pas quoi utiliser pour un emplacement spécifique..Veuillez me dire quoi utiliser là-bas ..
Je n'ai pas testé cela mais vous pouvez essayer:
Première méthode:
String uri = String.format(Locale.ENGLISH, "geo:%f,%f", latitude, longitude);
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
context.startActivity(intent);
EDIT: Cela pourrait ne pas fonctionner avec Google maps 7,0
par conséquent, vous pouvez changer l'URI en:
Deuxième option:
String geoUri = "http://maps.google.com/maps?q=loc:" + lat + "," + lng + " (" + mTitle + ")";
où mTitle
est le nom de l'emplacement.
Troisième option:
geo:0,0?q=my+street+address
Quatrième option:
String map = "http://maps.google.co.in/maps?q=" + yourAddress;
Espérons que cela fonctionne et aide: D ..
http://maps.google.com/maps/api/geocode/json?address=" + address + "&sensor=false
String strUri = "http://maps.google.com/maps?q=loc:" + lat + "," + lng + " (" + "Label which you want" + ")";
Intent intent = new Intent(Android.content.Intent.ACTION_VIEW, Uri.parse(strUri));
intent.setClassName("com.google.Android.apps.maps", "com.google.Android.maps.MapsActivity");
startActivity(intent);
Merci.
La dernière version de map offre une meilleure solution. Si vous souhaitez afficher une adresse sur la carte, utilisez le code ci-dessous.
Uri mapUri = Uri.parse("geo:0,0?q=" + Uri.encode(address));
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapUri);
mapIntent.setPackage("com.google.Android.apps.maps");
startActivity(mapIntent);
Si vous souhaitez afficher en utilisant les valeurs de latitude et de longitude, utilisez la méthode ci-dessous.
Uri mapUri = Uri.parse("geo:0,0?q=lat,lng(label)");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapUri);
mapIntent.setPackage("com.google.Android.apps.maps");
startActivity(mapIntent);
Lat et lng étant la latitude et la longitude que vous souhaitez afficher, l’étiquette ici est facultative.
Vous devriez utiliser quelque chose comme ça
Intent intent = new Intent(Android.content.Intent.ACTION_VIEW,
Uri.parse("http://maps.google.com/maps?saddr=20.344,34.34&daddr=20.5666,45.345"));
startActivity(intent);
Et laisser tomber une épingle
try {
Intent intent = new Intent(Android.content.Intent.ACTION_VIEW,
Uri.parse("geo:" + AppointmentDetailLayout.docLatitude
+ "," + AppointmentDetailLayout.docLongitude
+ "?q=" + AppointmentDetailLayout.docLatitude
+ "," + AppointmentDetailLayout.docLongitude
+ "(" + label + ")"));
intent.setComponent(new ComponentName(
"com.google.Android.apps.maps",
"com.google.Android.maps.MapsActivity"));
context.startActivity(intent);
} catch (ActivityNotFoundException e) {
try {
context.startActivity(new Intent(
Intent.ACTION_VIEW,
Uri.parse("market://details?id=com.google.Android.apps.maps")));
} catch (Android.content.ActivityNotFoundException anfe) {
context.startActivity(new Intent(
Intent.ACTION_VIEW,
Uri.parse("http://play.google.com/store/apps/details?id=com.google.Android.apps.maps")));
}
e.printStackTrace();
}
Cela fonctionnera comme un charme. Assurez-vous de vérifier l'existence de Google Maps afin que cela puisse fonctionner également sur tous les appareils non Google. Il s'ouvrira dans le navigateur dans de tels cas.
Rappelez-vous également ne pas avoir www dans l'URL. Sinon, cela ne fonctionnera pas.
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?q=loc:" + latitude + "," + longitude);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // Only if initiating from a Broadcast Receiver
String mapsPackageName = "com.google.Android.apps.maps";
if (Utility.isPackageExisted(context, mapsPackageName)) {
i.setClassName(mapsPackageName, "com.google.Android.maps.MapsActivity");
i.setPackage(mapsPackageName);
}
context.startActivity(i);
try {
Intent intent = new Intent(Android.content.Intent.ACTION_VIEW,
Uri.parse("http://maps.google.com/maps?saddr=" + src_lat+ "," + src_lng + "&daddr=" + des_lat + "," + des_lng));
startActivity(intent);
}catch (ActivityNotFoundException ane){
Toast.makeText(activity, "Please Install Google Maps ", Toast.LENGTH_LONG).show();
}catch (Exception ex){
ex.getMessage();
}
}
});
Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.Android.apps.maps");
if (mapIntent.resolveActivity(getPackageManager()) != null) {
startActivity(mapIntent);
}
Cette méthode d'assistance utilisant uriBuilder pour un code plus propre et une condition de traitement en l'absence d'activité sur le périphérique pouvant ouvrir la carte
public static boolean openMap(Context context, String address) {
Uri.Builder uriBuilder = new Uri.Builder()
.scheme("geo")
.path("0,0")
.appendQueryParameter("q", address);
Intent intent = new Intent(Intent.ACTION_VIEW, uriBuilder.build());
if (intent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(intent);
return true;
}
return false;
}
https://www.google.com/maps/dir//37.4219983,-122.084
String location = " https://www.google.com/maps/dir// " + latitude + "," + longitude; try {SmsManager sms = SmsManager.getDefault (); // using Android SmsManager sms.sendTextMessage (nombre, null, message + emplacement, null, null); // ajout du nombre et du texte Toast.makeText (getApplicationContext (), "Message envoyé", Toast.LENGTH_SHORT) .show ();} catch (exception e) {Toast.makeText (this, "Sms non envoyé, veuillez vérifier le numéro de téléphone/réseau", Toast.LENGTH_SHORT) .show (); e.printStackTrace (); }