Cómo mostrar el marcador en los mapas lanzados por geo uri ¿Intención?

Tengo una aplicación donde quiero mostrar diferentes ubicaciones (una en el momento, seleccionada por la entrada del usuario) mediante el lanzamiento de Google Maps con sus geocodías específicas.

Actualmente estoy usando esto: (con lat real y valores largos por supuesto)

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

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

¿Hay alguna manera de obtener el marcador o algo más incluido sin utilizar un MapView?

Prueba esto:

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

Puede omitir (Etiqueta + Nombre) si no desea una etiqueta, y elegirá una basada aleatoriamente en la calle más cercana u otra cosa que considere relevante.

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

Mirando a Un Identificador Uniforme de Recursos para Ubicaciones Geográficas ('geo' URI) :

La Sección 5.1 establece:

Si el URI final debe incluir un componente 'consulta', añada el delimitador de componente "?" Al final del resultado, seguido de la cadena de consulta codificada.

Desafortunadamente para nosotros, haciendo esto también escapará el '=' 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 usando una intención …

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

¿Ha intentado agregar (LocationMarkerName) al geo: uri? Por ejemplo "geo:,? Z = 17 (LocationMarkerName)"

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

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

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

Solamente he usado Overlays con el MapView para dibujar marcadores en la parte superior de un mapa. Si su vista está mostrando su mapa, podría ser posible simplemente dibujar su marcador en el centro de la pantalla, de la misma manera que dibujaría cualquier imagen en una vista. Sin embargo, el marcador no estaría vinculado a las coordenadas del mapa real, pero si es sólo una vista estática, entonces esto podría hacer.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.