Mostrar la barra de herramientas para el marcador de Google Maps automáticamente

Tengo un marcador y cuando abro el mapa muestra el marcador. Cuando hago clic en él, se muestra el título y una barra de herramientas que incluye dos botones en la parte inferior derecha del mapa que me permiten iniciar bashs para navegar hasta el marcador o mostrarlo en Google Maps. Me gustaría que estos se muestren automáticamente cuando se abre el mapa en lugar de hacer que el usuario haga clic en el marcador.

Me gusta esto 🙂 … enter image description here Parece que no puedo averiguar cómo hacer esto.

Yo he tratado:

// create marker MarkerOptions marker = new MarkerOptions().position( new LatLng(latitude, longitude)).title("title"); // adding marker googleMap.addMarker(marker).showInfoWindow(); googleMap.getUiSettings().setMapToolbarEnabled(true); 

Pero esto solo muestra el título del marcador y un botón en la parte superior derecha para ir a mi ubicación, no a los dos botones de bash de la barra de herramientas en la parte inferior derecha.

Me gusta esto 🙁 … enter image description here Estoy un poco atascado alguna idea?

La superposición que aparece cuando se hace clic en un marcador se crea y destruye implícitamente. No puede mostrar eso manualmente (todavía).

Si debe tener esta funcionalidad, puede crear una superposición sobre su mapa con 2 ImageViews y llamar a los bashs adecuados cuando se haga clic en ellos:

 // Directions Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse( "http://maps.google.com/maps?saddr=51.5, 0.125&daddr=51.5, 0.15")); startActivity(intent); // Default google map Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse( "http://maps.google.com/maps?q=loc:51.5, 0.125")); startActivity(intent); 

Nota: debe cambiar las coordenadas en función de la posición getPosition() Marker y la ubicación del usuario.

Ahora, para ocultar la superposición predeterminada, todo lo que necesita hacer es devolver verdadero en OnMarkerClickListener . Aunque perderá la capacidad de mostrar InfoWindows y centrar la cámara en el marcador, puede imitar eso simplemente:

 mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { @Override public boolean onMarkerClick(Marker marker) { marker.showInfoWindow(); mMap.animateCamera(CameraUpdateFactory.newLatLng(marker.getPosition())); return true; } }); 

Agregué una solicitud de función aquí: http://code.google.com/p/gmaps-api-issues/issues/detail?id=7652

Citando el documento:

En un mapa lite-mode, la barra de herramientas persiste independientemente de las acciones del usuario. En un mapa totalmente interactivo, la barra de herramientas se desliza cuando el usuario toca un marcador y se desliza de nuevo cuando el marcador ya no está enfocado.

Parece que no hay forma de que persista la barra de herramientas en su caso, ya que es un mapa interactivo. Puede intentar usar lite-mode si eso es un requisito: https://developers.google.com/maps/documentation/android/lite

También mirando su código:

 // create marker MarkerOptions marker = new MarkerOptions().position( new LatLng(latitude, longitude)).title("title"); // adding marker googleMap.addMarker(marker).showInfoWindow(); googleMap.getUiSettings().setMapToolbarEnabled(true); 

La última línea: googleMap.getUiSettings().setMapToolbarEnabled(true); es redundante a menos que lo defina explícitamente de antemano. El doc dice:

Establece la preferencia de si la barra de herramientas del mapa debe habilitarse o deshabilitarse. Si está habilitado, los usuarios verán una barra con varias acciones dependientes del contexto, como “abrir este mapa en la aplicación Google Maps” y “buscar indicaciones para el marcador resaltado en la aplicación Google Maps”.

Por defecto, la barra de herramientas del mapa está habilitada.

El enlace: https://developer.android.com/reference/com/google/android/gms/maps/UiSettings.html#setMapToolbarEnabled(boolean)

Espero que esto ayude.

Tuve un problema similar … si está de acuerdo con no dejar que el usuario explore en el mapa y solo se concentre en su marcador, puede usar el mapa lite-mode …. Cita de la documentación

En un mapa lite-mode , la barra de herramientas persiste independientemente de las acciones del usuario. En un mapa totalmente interactivo, la barra de herramientas se desliza cuando el usuario toca un marcador y se desliza de nuevo cuando el marcador ya no está enfocado.

De nuevo desde los documentos

También de forma predeterminada, cuando un usuario toca el mapa, la API inicia la aplicación móvil Google Maps. Puede anular esto usando GoogleMap.setOnMapClickListener () para configurar su propio oyente. También puede desactivar los eventos de clic en el mapa, llamando a setClickable () en la vista que contiene MapView o MapFragment.

Muestra un DialogFragment en lugar de la ventana de información y maneja todo lo que contiene.

 @Override public boolean onMarkerClick(Marker marker) { FragmentManager fm = getSupportFragmentManager(); DialogFragment markerWebView = DialogFragment(); mMap.animateCamera(CameraUpdateFactory.newLatLng(marker.getPosition())); markerWebView.show(fm, "fragment_marker"); return true; } 

O

utilice los clics del marcador para activar / desactivar una superposición usando un facsímil de un botón de mapa de Google

 mMap.setOnMarkerClickListener(this); mMap.setOnInfoWindowClickListener(this); @Override public boolean onMarkerClick(Marker marker) { //here turn on the overlays for nav turns etc. for this marker. return false } @Override public void onInfoWindowClick(Marker marker) { //here turn off the overlays for nav turns etc. marker.hideInfoWindow(); } 

si no me equivoco, quiere mostrar los dos botones relacionados con el marcador en el lado derecho del mapa y esos botones tienen cierta dependencia del marcador si soy cierto, así que solo necesita implementar un nuevo método como codifique a continuación y simplemente llame a este método para crear y asegurarse en su marcador haga clic en oyente

 @Override public void markerIntentButtonShow(Marker marker) { //setvisible(true) to your side buttons or call some Intent Intent i = new Intent(getActivity(), MarkerViewDetails.class); i.putExtra("marker_snippet", marker.getSnippet()); startActivity(i); } 

y llame al método en su oyente de clic

  googleMap .setOnInfoWindowClickListener(new OnInfoWindowClickListener() { @Override public void onInfoWindowClick(Marker marker) { markerIntentButtonShow(marker); } }); 

y en tu onCreateView

 MarkerOptions marker = new MarkerOptions().position( new LatLng(latitude, longitude)).title("title"); googleMap.addMarker(marker).showInfoWindow(); markerIntentButtonShow(marker); 

Para la barra de herramientas que ha descrito en rojo, puede desactivarla utilizando el método setMapToolbarEnabled () en UISettings

De la documentación:

Establece la preferencia de si la barra de herramientas del mapa debe habilitarse o deshabilitarse. Si está habilitado, los usuarios verán una barra con varias acciones dependientes del contexto, como “abrir este mapa en la aplicación Google Maps” y “buscar indicaciones para el marcador resaltado en la aplicación Google Maps”.

Ejemplo de código para deshabilitar los dos botones:

 //Disable Map Toolbar: mMap.getUiSettings().setMapToolbarEnabled(false); 

En caso de que también se esté preguntando sobre los botones de zoom, puede desactivarlos así:

 mMap.getUiSettings().setZoomControlsEnabled(false);