varios una trazar studio ruta multiples marcadores mapas hacer google example ejemplos ejemplo desde datos como agregar android google-maps android-mapview android-maps-v2

android - trazar - marcadores multiples desde una base de datos en google maps



No ajustar a marcador después de hacer clic en el mapa de Android v2 (2)

Basado en lo que leí de los Marcadores - API de Android de Google Maps ( https://developers.google.com/maps/documentation/android/marker#marker_click_events )

Eventos de clic de marcador

Puede usar OnMarkerClickListener para escuchar eventos de clics en el marcador. Para configurar este oyente en el mapa, llame a GoogleMap.setOnMarkerClickListener (OnMarkerClickListener). Cuando un usuario hace clic en un marcador, se llamará a MarkerClick (Marker) y el marcador se pasará como un argumento. Este método devuelve un valor booleano que indica si ha consumido el evento (es decir, desea suprimir el comportamiento predeterminado). Si devuelve falso, entonces se producirá el comportamiento predeterminado además de su comportamiento personalizado. El comportamiento predeterminado para un evento de clic de marcador es mostrar su ventana de información (si está disponible) y mover la cámara de manera que el marcador esté centrado en el mapa.

Es probable que pueda anular este método y que solo abra el marcador y devuelva verdadero para consumir el evento.

// Since we are consuming the event this is necessary to // manage closing opened markers before opening new ones Marker lastOpened = null; mMap.setOnMarkerClickListener(new OnMarkerClickListener() { public boolean onMarkerClick(Marker marker) { // Check if there is an open info window if (lastOpened != null) { // Close the info window lastOpened.hideInfoWindow(); // Is the marker the same marker that was already open if (lastOpened.equals(marker)) { // Nullify the lastOpened object lastOpened = null; // Return so that the info window isn''t opened again return true; } } // Open the info window for the marker marker.showInfoWindow(); // Re-assign the last opened such that we can close it later lastOpened = marker; // Event was handled by our code do not launch default behaviour. return true; } });

Este es un código no probado pero puede ser una solución viable.

Gracias, DMan

Actualmente Android Map v2 se ajusta a la ubicación del marcador después de hacer clic. Quiero desactivar este comportamiento, pero no veo ninguna opción para hacerlo.

¿Alguien sabe cómo arreglar eso?


Parece que deberíamos poder hacer lo siguiente, pero debido a este error , no funciona porque marker.isInfoWindowShown() siempre devuelve falso:

mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { public boolean onMarkerClick(Marker marker) { if (marker.isInfoWindowShown()) { marker.hideInfoWindow(); } else { marker.showInfoWindow(); } return true; } });

Sin embargo, lo siguiente tiene el mismo efecto y funciona:

mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { Marker currentShown; public boolean onMarkerClick(Marker marker) { if (marker.equals(currentShown)) { marker.hideInfoWindow(); currentShown = null; } else { marker.showInfoWindow(); currentShown = marker; } return true; } });

Como solo se muestra una ventana de información a la vez (como se indica en la Guía del desarrollador de Google Maps API v2 ), solo tenemos que preocuparnos de ocultar la ventana de información si se hace clic en el marcador cuya ventana de información está actualmente abierta.