IOS: грубое поведение на границах карт Google
Я использую Google Maps SDK для IOS. Я установил границы для карты с помощью метода GMSCoordinateBounds().
У меня возникают некоторые проблемы при прокрутке на границах карты. Не уверен, является ли это собственным поведением IOS или чем-то связанным с кодом.
Фактическое поведение: переживание грубого поведения на границах. Работает нормально внутри границ.
Ожидаемое поведение: следует остановить эффект прокрутки или масштабирования на границах, чтобы избежать грубого поведения.
Вот мой код
var mapView = GMSMapView()
var defaultCamera = GMSCameraPosition()
defaultCamera = GMSCameraPosition(target: CLLocationCoordinate2D(latitude: 12.3019, longitude: 104.0923),
zoom: zoomLevels[0],
bearing: defaultCamera.bearing,
viewingAngle: defaultCamera.viewingAngle)
mapView.delegate = self
mapView.mapStyle = MapUtils().style
mapView.camera = defaultCamera
mapView.setMinZoom(10, maxZoom: 21)
// enable google map view handle other gesture
mapView.settings.consumesGesturesInView = false
mapView.settings.rotateGestures = false
mapView.settings.tiltGestures = false
mapView.settings.allowScrollGesturesDuringRotateOrZoom = false
// override double tap to zoom in
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(googleMapDoubleTap))
tapGesture.numberOfTapsRequired = 2
mapView.addGestureRecognizer(tapGesture)
self.myLocationMarker.map = self.mapView
Любая помощь будет оценена. Заранее спасибо..
1 ответ
Решение состоит в том, чтобы просто добавить эту строку при настройке GMSMapview
:
_mapView.settings.allowScrollGesturesDuringRotateOrZoom = NO;
или же
Вы можете использовать эту строку allowScrollGesturesDuringRotateOrZoom для вашего GMSMapview
, Он контролирует, могут ли жесты поворота и масштабирования выполняться вне центра и прокручиваться вокруг. Значением по умолчанию является YES.
mapView.settings.allowScrollGesturesDuringRotateOrZoom = false // NO for obj-c and false for swift
Таким образом, установив его на NO/false, теперь вы можете выполнять масштабирование, пока местоположение маркера не движется.