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?
- Crear una ventana de información personalizada en Google Maps V2
- crear CustomInfoWindow en google map v2
- MapView muestra mosaicos vacíos en GoogleMaps API v2 para Android
- Los datos de tráfico se muestran por encima de las formas dibujadas (polilíneas) en Android Google Maps API v2
- Ruta de dibujo en Google Maps con Google Maps Android API v2
- Android - Google Maps API v2 - NoClassDefFoundError
- Dibujar línea punteada en google maps v2 en lugar de sólido
- GooglePlayServicesUtil.getErrorDialog es nulo
- ¿Es posible agregar cabezas de flechas en la línea de poli usando mapas de Android V2
- Android error Dx problema salida de escritura: ya preparado Error generando archivo final: Encontró archivo duplicado para APK: classes.dex
- Android MapView getMap () devuelve null
- Google Maps Android API v2 detecta un clic largo en el mapa y agrega marcador que no funciona
- ¿Existe una funcionalidad como el método onFirstFix en el Android Maps Api V2?
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.
- Cómo crear Android La vista de cuadrícula de Google Play como Widget con imágenes de diferentes tamaños cargadas dinámicamente
- Android UncaughtExceptionHandler que instancia un AlertDialog se rompe