Clics de clúster y clics de Android
Estoy usando la utilidad de clúster android en un mapa y succesffuly implementó un listener onclick con mClusterManager.setOnClusterItemClickListener () para todos los marcadores manejados por la biblioteca de clústeres.
Debido a que también quiero que algunos marcadores siempre estén sin un clúster, también agrego algunos marcadores sin usar el mClusterManager, pero directamente usando el mapa de mMap.addMarker (), de esta manera estoy seguro de que nunca se agrupan en el mapa.
- Objetos EditText múltiples en AlertDialog
- React-native maps no carga para android (mapa en blanco)
- Mostrar un bus móvil en google maps api v2 android
- IllegalStateException: tamaño de vista es demasiado pequeño después de relleno
- Localización fuera de línea basada en la aplicación Android
Mi problema es que no puedo interceptar clics en esos marcadores (los que siempre no están agrupados) porque ya usé mMap.setOnMarkerClickListener (mClusterManager) para manejar los marcadores de los clics que se hicieron clic.
¿Hay una manera de escuchar los marcadores agrupados clicados y los marcadores marcados que no son manejados por la biblioteca de clústeres?
¿O hay una manera de especificar el administrador de clúster para nunca agrupar algunos marcadores? En este caso, no tendré que manejar los diferentes oyentes de clics ya que todos los marcadores se mostrarán utilizando la utilidad de agrupación.
Gracias
- La clase de dirección getCountryCode () devuelve dígitos
- Android: error keytool en la línea de comandos al localizar debug.keystore
- GoogleMaps GroundOverlay parpadea mis imágenes
- Dibujo de la ruta del autobús al mapa de Google
- Establecer límites de mapa con diferentes rellenos
- Liberar la aplicación de Android firmada, Google Plus Login y Google Map no funcionan
- ¿Cuáles son las dependencias de Google Maps v2?
- Tratando de poner un mapa en una actividad de fragmento
Puede crear un nuevo MarkerManager
que pase al constructor ClusterManager
. Luego, haga una nueva colección de Marker usando MarkerManager#newCollection
y añada sus marcadores normales al mapa usando el método MarkerManager.Collection#addMarker
.
Entonces, en lugar de llamar a mMap.setOnMarkerClickListener(mClusterManager)
, llame a mMap.setOnMarkerClickListener(mMarkerManager)
y mMap.setOnMarkerClickListener(mMarkerManager)
envío de los eventos de clic de Marker
a los oyentes adecuados. También necesitará configurar su marcador onMarkerClick para marcadores normales con la función MarkerManager.Collection#setOnMarkerClickListener(GoogleMap.OnMarkerClickListener markerClickListener)
.
Recomiendo revisar el origen de las clases de MarkerManager y ClusterManager para obtener una mejor idea de cómo interactúan las clases.
Una forma más de recibir el evento de clic para Marker
es usar la interfaz OnClusterItemClickListener
.
Llame a mClusterManager.setOnClusterItemClickListener(this);
Y hacer que su clase implemente OnClusterItemClickListener
A continuación, dentro del método onClusterItemClick
, obtendrá el ClusterItem que es el marcador que se hizo clic,
@Override public boolean onClusterItemClick(ClusterItem clusterItem) { Toast.makeText(getActivity(), "Latitude " + clusterItem.getPosition().latitude, Toast.LENGTH_LONG).show(); return true; }
- Conflicto entre la vinculación de datos de Android y la guayaba provoca error en ProGuard
- Cómo administrar varias ediciones de la misma aplicación android