Google Map vs. Administrador de clústeres: onCameraChangeListener obsoleto
Tengo una aplicación para Android con unos 500-1000 marcadores. Estoy usando el ClusterManager de los android-maps-utils como se muestra aquí para agrupar estos marcadores.
En la última actualización de Google Play Services, Google cambió el modelo de escuchas de Google Map. El OnCameraChangeListener
está marcado como obsoleto ahora. En su lugar hay cuatro nuevos oyentes ( OnCameraIdleListener, OnCameraMoveListener, OnCameraMoveStartedListener
, OnCameraMoveCanceledListener
).
- Android setOnMarkerClickListener establecer título para cada marcador
- ClusterManager en GoogleMap android
- Andorid Google mapa muestra marcador personalizado y problema de agrupación
- Refreshing makers (ClusterItems) en Google Maps v2 para Android
- DefaultClusterRenderer getMarker () devuelve null cuando se hace zoom
Desde que la actualización de mi aplicación es increíblemente lento. Se atasca en el movimiento / zoom del mapa, el proceso de agrupación es laggy y necesita unos segundos.
Pensé que este comportamiento es quizás ligado a los cambios en el modelo del oyente. Por lo tanto, traté de reemplazar la función addOnCameraChangeListener(clustermanager)
con el nuevo addOnCameraIdleListener(clustermanager)
. Desafortunadamente esto no está funcionando ya que el ClusterManager
no implementa la interfaz necesaria.
Y aquí es donde se vuelve extraño, porque la versión actual (0.4.3) del ClusterManager
en GitHub implementa esa interfaz. Así que debería funcionar.
Estoy importando el ClusterManager con Gradle:
compile 'com.google.maps.android:android-maps-utils:0.4.3
pero mi versión local del ClusterManager
todavía parece ser una antigua que implementa el OnCameraChangeListener
antiguo.
Entonces, ¿qué hay de malo aquí? ¿Se trata de un mal comportamiento de Gradle? ¿Alguien tiene una idea de cómo solucionar este problema? ¿Y hay alguien más cuyo Google Map / Clusterer es lento y laggy desde la última actualización de Play Services?
Aprecio cualquier ayuda. Gracias chicos.
- Mostrar la información personalizada de InfoWindow para Android Maps Utility Library for Android
- Cómo mostrar InfoWindow con Android Maps Utility Library para Android
- Cómo centrar el texto en android IconGenerator
- Cómo configurar mi propio icono de marcadores en clúster en Google Maps
- Mejores prácticas al agrupar gran cantidad de marcadores en Google Maps Android V2
- ¿Cómo agregar título, fragmento e icono a ClusterItem?
- Marcadores de clúster superpuestos por el icono de ubicación actual del usuario en Android
- Utilidad de Google Maps: cómo obtener todos los marcadores de ClusterManager <?>?
Necesita usar gooleMap.setOnCameraIdleListener (mClusterManager); en lugar de googleMap.setOnCameraMoveListener (mClusterManager);
Puede buscar el código fuente de ClusterManager y verá que ClusterManager implementa el nuevo OnCameraIdleListener.
También necesita actualizar a los nuevos android-maps-utils: 0.4.4 (compilar 'com.google.maps.android:android-maps-utils:0.4.4')
Buena suerte y voto hacia arriba … 😉
- ¿Cómo detectar mediante programación en qué país se encuentra el dispositivo Android actualmente sin utilizar GPS?
- Botón para copiar el valor de una cadena al portapapeles