Mostrar u ocultar los marcadores depende del nivel de zoom

Estoy dibujando un montón de marcadores en el mapa y cuando se ubican cerca se superponen entre sí. Así que quiero ocultar algunos marcadores en el pequeño zoom y mostrar más marcadores cuando el usuario zoom mapa. Como más acercar, más marcas. Aquí está el código de ejemplo de la actividad y la creación de marcadores, como se puede ver Estoy usando google maps android api v2:

public class MainActivity extends FragmentActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); GoogleMap map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); map.getUiSettings().setMyLocationButtonEnabled(true); createMarkers(map); } private void createMarkers(GoogleMap map) { double initLat = 48.462740; double initLng = 35.039572; for(float i = 0; i < 2; i+=0.2) { LatLng pos = new LatLng(initLat + i,initLng); map.addMarker(new MarkerOptions() .position(pos) .icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher))); } for(float i = 0; i < 2; i+=0.2) { LatLng pos = new LatLng(initLat, initLng + i); map.addMarker(new MarkerOptions() .position(pos) .icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher))); } } 

Suena como una tarea típica para mí, pero todavía no he logrado encontrar la solución de trabajo. He leído este artículo https://developers.google.com/maps/articles/toomanymarkers pero no tengo idea de cómo implementarlo en android. ¿Alguien tiene algún código de trabajo que puede hacer esto?

Aquí está mi solución a este problema: https://github.com/Bersh/MarkersCluster

Tal vez no es la mejor solución, pero funciona para mí. Espero que sea útil.

Usted está básicamente preguntando cómo implementar la agrupación en Android. Por lo que sé, no hay ninguna solución proporcionada por Google para hacer esto. El documento al que se hace referencia en los comentarios ( developers.google.com/maps/articles/toomanymarkers ) se refiere a la API de google maps javascript. Desafortunadamente, ninguno de los códigos relacionados con el clúster está disponible en Android.

Usted tendrá que llegar a su propio algoritmo para agrupar los marcadores. El documento developers.google.com/maps/articles/toomanymarkers que señaló puede ser un buen punto de partida para decidir qué algoritmo funcionará mejor para usted (agrupación basada en grid, agrupación basada en distancia, etc.).

Otra opción que es ligeramente más fácil de implementar (pero no perfecta) podría ser cambiar la imagen de marcador a un icono más pequeño cuando el nivel de zoom ha cambiado para que no se superponen tanto. Echa un vistazo a mi respuesta a esta pregunta: https://stackoverflow.com/a/13976080/1103584

Podrías utilizar esa respuesta para determinar cuándo has cruzado un "umbral de zoom" y cambiar los marcadores a algo más pequeño una vez que hayas reducido el zoom pasando un determinado umbral ya una imagen más grande cuando hayas vuelto a acercar el zoom. Truco en un par de mis propias aplicaciones para cambiar los iconos regulares a pequeñas imágenes de puntos cuando se aleja, y volver al icono regular cuando se vuelve a acercar.

  • java.lang.ClassCastException: android.support.v4.app.NoSaveStateFrameLayout no se puede convertir en com.google.android.maps.MapView
  • Cómo convertir un dibujable en un mapa de bits para cambiar el color de un marcador en Google Maps Android API v2
  • DeslizamientoDirector sobre GoogleMap
  • Intentando mostrar StreetView utilizando Google Maps Android API v2 en android pero no consiguiendo que funcione
  • Android Dibujar polilíneas con flecha en el mapa de google con la ruta de dirección
  • ¿Cómo puedo pasar datos personalizados a Google Maps v2 InfoWindowAdapter?
  • Esta aplicación IP, de sitio o móvil no está autorizada para utilizar esta clave de API - Android
  • Adición de marcadores múltiples en Google Maps Api v2
  • Manejo de eventos táctiles en SurfaceView sobre Maps API v2
  • en Android google maps api v2 para 4.0, muestre las rutas de la ubicación actual a lat lat largo
  • Animación de tipo GIF para marcador en google map api ANDROID
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.