Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


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?

  • Interpretación del seguimiento de rendimiento de Multicore (Eclipse / Android)
  • Android Studio, ProGuard no puede calcular hash de Classes.jar
  • "La versión mínima de Gradle admitida es 2.14.1. La versión actual es 2.10. "Error
  • Textview con texto largo empuja hacia fuera otras vistas en GridLayout a pesar ellipsize = end
  • GooglePlayServicesUtil.getErrorDialog es nulo
  • SDK de Android: no escala en el centro del tacto
  • Cómo detectar cuando VideoView comienza a reproducir (Android)?
  • Android dibujable con parámetros
  • Pasar variables entre el renderizador y otra clase con queueEvent ()
  • ¿Cómo obtengo datos de falla de mi aplicación de Android?
  • Abra la aplicación de Google Maps nativa de Android obteniendo direcciones desde la posición actual
  • Autenticación con Facebook al principio y luego Google provoca un error en Firebase para Android
  • 2 Solutions collect form web for “Mostrar u ocultar los marcadores depende del nivel de zoom”

    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.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.