我正在使用谷歌地图sdk for 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
任何帮助将不胜感激。提前致谢..
解决方案是在配置GMSMapview
时简单地添加此行:
_mapView.settings.allowScrollGesturesDuringRotateOrZoom = NO;
要么
你可以使用这条线allowScrollGesturesDuringRotateOrZoom到你的GMSMapview
。它控制是否可以偏心地执行旋转和缩放手势并滚动。默认值为YES。
mapView.settings.allowScrollGesturesDuringRotateOrZoom = false // NO for obj-c and false for swift
因此,通过将其设置为NO / false,您现在可以在标记位置不移动时执行缩放。