[英]is there any way of allowing zooming MKMapView only to a specific region, while disabling any other user interaction?
我有一个带有MapView的swift
应用程序。 这些是我在地图故事板上的设置:
另外,在我正在做的代码中:
let regionRadius: CLLocationDistance = 10000
let initialLocation = CLLocation(latitude: latitude, longitude: longitude)
centerMapOnLocation(initialLocation, map: cell.mapView, radius: regionRadius)
cell.mapView.scrollEnabled = false
cell.mapView.rotateEnabled = false
我的方法centerMapOnLocation
最初将地图置于特定位置的中心位置:
func centerMapOnLocation(location: CLLocation, map: MKMapView, radius: CLLocationDistance) {
let coordinateRegion = MKCoordinateRegionMakeWithDistance(location.coordinate,
radius * 2.0, radius * 2.0)
map.setRegion(coordinateRegion, animated: true)
}
我想只允许用户放大/缩小到精确的gps坐标。
目前用户无法滚动地图,但他可以旋转它,也可以 - 他可以在地图上的任何地方双击,它将在那里放大。
我想禁用这些选项并产生效果,当用户双击地图(或捏合)时 - 它只会缩放到初始位置。
我怎么能这样做,而且 - 为什么rotateEnabled = false
不起作用?
在双击操作方法中添加以下代码
var annotationPoint = MKMapPointForCoordinate(zoomToLocation.coordinate)
var zoomRect = MKMapRectMake(annotationPoint.x, annotationPoint.y, 0.1, 0.1)
mapView.setVisibleMapRect(zoomRect, animated: true)
这里zoomToLocation是你想要的CLLocation,mapView是MKMapView的对象。
希望这会解决你的问题:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.