¿Cómo mostrar marcador en Maps lanzado por geo uri Intent?

Tengo una aplicación en la que quiero mostrar diferentes ubicaciones (una a la vez, elegida por el usuario) mediante el lanzamiento de Google Maps con sus coordenadas geográficas específicas.

Actualmente estoy usando esto: (con valores de latitud real y largos, por supuesto)

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:,?z=17")); startActivity(intent); 

Es exactamente lo que quiero, excepto que no muestra ningún indicador o marcador para el punto especificado. Solo se centra en su ubicación.

¿Hay alguna forma de incluir el marcador u otra cosa sin usar MapView?

Prueba esto:

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

Puede omitir (Etiqueta + Nombre) si no desea una etiqueta, y elegirá una al azar en función de la calle más cercana u otra cosa que considere relevante.

La respuesta aceptada es correcta, excepto cuando su etiqueta tiene un ampersand (&) en ella.

Mirando un identificador uniforme de recursos para ubicaciones geográficas (‘URI geográfico) :

La sección 5.1 establece:

si el URI final debe incluir un componente de “consulta”, agregue el delimitador de componente “?” hasta el final del resultado, seguido de la cadena de consulta codificada.

Desafortunadamente para nosotros, hacer esto también escapará del ‘=’ que no es lo que queremos. Lo que debemos hacer es esto:

 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 ); 

Hay muchas más opciones para lanzar un mapa de Google con un bash …

  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); 

Esta cadena funciona bien para mí:

 String geoUriString="geo:"+lat+","+lon+"?q=("+head+")@"+lat+","+lon; Uri geoUri = Uri.parse(geoUriString); Log.e(TAG, "String: "+geoUriString); Intent mapCall = new Intent(Intent.ACTION_VIEW, geoUri); startActivity(mapCall); 

¿Has intentado anexar (LocationMarkerName) al geo: uri? por ejemplo, “geo:,? z = 17 (LocationMarkerName)”

En Google Maps en Android, la búsqueda de 23.0980,30.6797 (NamedMarker) parece centrar el mapa y colocar un marcador con el nombre NamedMarker en esa posición.

Acabo de confirmar que el siguiente fragmento de @Kenton Price todavía funciona en Android 4.4

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

Solo he usado Overlays con MapView para dibujar marcadores en la parte superior de un mapa. Si su vista muestra su mapa, es posible que simplemente dibuje su marcador en el centro de la pantalla, del mismo modo que dibujaría cualquier imagen en una Vista. Sin embargo, el marcador no estaría vinculado a las coordenadas reales del mapa, pero si solo es una vista estática, entonces esto podría funcionar.