How do I show a marker in Maps launched by geo URI Intent? How do I show a marker in Maps launched by geo URI Intent? android android

How do I show a marker in Maps launched by geo URI Intent?


Try this:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:<lat>,<long>?q=<lat>,<long>(Label+Name)"));startActivity(intent);

You can omit (Label+Name) if you don't want a label, and it will choose one randomly based on the nearest street or other thing it thinks relevant.


There are many more options to launch a Google map using an intent...

   Double myLatitude = 44.433106;   Double myLongitude = 26.103687;   String labelLocation = "Jorgesys @ Bucharest";

1)

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:<" + myLatitude  + ">,<" + myLongitude + ">?q=<" + myLatitude  + ">,<" + myLongitude + ">(" + labelLocation + ")"));    startActivity(intent);

2)

String urlAddress = "http://maps.google.com/maps?q="+ myLatitude  +"," + myLongitude +"("+ labelLocation + ")&iwloc=A&hl=es";    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(urlAddress));    startActivity(intent);

3)

   String urlAddress = "http://maps.googleapis.com/maps/api/streetview?size=500x500&location=" + myLatitude  + "," + myLongitude + "&fov=90&heading=235&pitch=10&sensor=false";        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(urlAddress));        startActivity(intent);


The accepted answer is correct, except when your label has an ampersand (&) in it.

Looking at A Uniform Resource Identifier for Geographic Locations ('geo' URI):

Section 5.1 states:

if the final URI is to include a 'query' component, add the component delimiter "?" to the end of the result, followed by the encoded query string.

Unfortunately for us, doing this will also escape the '=' which is not what we want.

We should do this:

String label = "Cinnamon & Toast";String uriBegin = "geo:12,34";String query = "12,34(" + label + ")";String encodedQuery = Uri.encode(query);String uriString = uriBegin + "?q=" + encodedQuery;Uri uri = Uri.parse(uriString);Intent intent = new Intent(android.content.Intent.ACTION_VIEW, uri);startActivity(intent);