¿Cómo detectar el movimiento de Google MapView en Android?
Me gustaría actualizar dinámicamente el mapa / cargar nuevas superposiciones de mapas cada vez que mi usuario la mueva una cierta cantidad de distancia. ¿Cómo voy a hacer esto? ¿Hay un oyente para cada vez que el usuario mueve el mapa? Lo más probable es que sólo mediría la distancia entre los puntos centrales.
¡Gracias!
- ¿Cómo puedo reducir el relleno interno alrededor del texto dentro de un objeto de botón de Android?
- Imprimir la pila trasera actual en el registro
- Establecer atributos (margen, gravedad, etc ...) en una vista de Android mediante programación (sin XML)
- FragmentActivity TabHost con Fragmento y Actividad
- LibGDX - Selector de color
- Acceso a la interfaz de usuario de JavaScript en Android
- ¿Es posible hacer un NumberPicker horizontal?
- Alineación de componentes en RelativeLayout
- Androide basado en turnos multijugador personalizado invitar pantalla
- ¿Hay una manera de deshabilitar todos los elementos en un diseño específico programmaticaly?
- Cómo cambiar el color de fondo del menú de opciones?
- Cómo establecer un tema diferente en un diseño
- Android - Creación de listview con encabezados flotantes
Pruebe esto para detectar los movimientos del mapa: http://pa.rezendi.com/2010/03/responding-to-zooms-and-pans-in.html
Al iniciar y después de mover el mapa, debe guardar el centro del mapa actual. Como sugiere el artículo, siga ACTION_UP para determinar cuándo el usuario ha finalizado un movimiento del mapa. A continuación, compare el nuevo centro del mapa con el antiguo centro del mapa. Para obtener los centros de mapas utilice MapView getMapCenter ():
EDIT: He hecho un trabajo adicional sobre esto, y tengo una aplicación completa con código para su disfrute. Esta entrada del blog explica una solución de temporizador a esto y contiene un enlace a Github fuente: http://bricolsoftconsulting.com/extending-mapview-to-add-a-change-event/
Desafortunadamente, la interfaz de mapa no incluye ningún oyente para supervisar las acciones del mapa (zoom / pan). Tendrá que configurar un temporizador de algún tipo que compruebe el centro / zoom levesl para averiguar si las cosas han cambiado y actualizar en consecuencia.
Podría hacerlo sobrescribiendo el onTouch(...)
en su Activity
(para que cada vez que el usuario muestre el mapa, podría volver a calcular los límites del mapa). Necesitará conocer el nivel de zoom del mapa y los límites, etc., para cargar estas superposiciones basadas en distancias de mapa.
- Adición de objetos independientes a una RealmList
- Cómo agregar Maven a un proyecto de IntelliJ Android existente