servicios - no puedo activar localizacion iphone
Mapa de Google de iOS: cómo saber cuándo un usuario comienza o detiene el mapa de arrastre (4)
Estoy desarrollando con Google map SDK 6.1
. Quiero saber cuándo el usuario comienza a arrastrar o detener el mapa, acabo de encontrar 2 funciones de delegado: didChangeCameraPosition
y idleAtCameraPosition
. ¿Hay alguna forma de capturar cuando el usuario comienza o detiene el arrastre del mapa?
De la documentation :
- (void) mapView:(GMSMapView *)mapView idleAtCameraPosition:(GMSCameraPosition *)position
Se llama cuando el mapa queda inactivo, después de que se hayan completado todos los gestos o animaciones sobresalientes (o después de que la cámara se haya establecido explícitamente).
Así que con este delegado puede capturar cuando el usuario dejó de arrastrar el mapView.
Para recibir una notificación cuando el usuario comenzó a arrastrar, solo use el otro delegado que ha señalado:
- (void) mapView:(GMSMapView *)mapView didChangeCameraPosition:(GMSCameraPosition *)position
Llamado repetidamente durante cualquier animación o gesto en el mapa (o una vez, si la cámara está configurada explícitamente).
Esto no puede ser llamado para todas las posiciones de cámara intermedias Siempre se solicita la posición final de una animación o gesto.
No estoy seguro de lo que te confunde.
Para detectar si el usuario arrastró el mapa, creo que es mejor usar este método
- (void)mapView:(GMSMapView *)mapView willMove:(BOOL)gesture
y verifica si el argumento del gesture
es true
.
didChangeCameraPosition
se mencionó, muchas veces se llama didChangeCameraPosition
, pero como también se llama configurando el centro del mapa desde el código y como resultado de un gesto, realmente no se puede ver la diferencia solo en ese método.
Tenga en cuenta que idleAtCameraPosition es cuando el mapa deja de moverse, no cuando levanta el dedo.
Tuve que subclasificar GSMapView y agregar PanGestureRecognizer >> State ENDED para obtener cuando se levanta el dedo.
Swift 4:
func mapView(_ mapView: GMSMapView, willMove gesture: Bool) {
if (gesture){
print("dragged")
}
}