如何在 MapBox 中放大缩小时保持地图始终以当前位置为中心 iOS

how to keep map always centred with current location while zooming in zooming out in MapBox iOS

我正在 iOS 中实现 Map-box sdk。所以我的要求是当用户放大或缩小或旋转地图时..用户位置应始终位于中心..

是否有任何方法或API可用于实现此功能?

您可以使用 MGLMapView 属性 isScrollEnabled 并将其设置为 false。

mapView.isScrollEnabled = false

停止滚动,但仍然允许用户双击地图并缩放到另一个位置并捏合缩放。要阻止这两者更改中心位置,您可以使用以下委托方法:

optional func mapView(_ mapView: MGLMapView, shouldChangeFrom oldCamera: MGLMapCamera, to newCamera: MGLMapCamera) -> Bool

类似于下面的代码的东西可以工作,但它假定您已经将地图居中放置在用户位置上。还要注意!在用户的位置...请在您的实际应用中进行常规安全检查。

func mapView(_ mapView: MGLMapView, shouldChangeFrom oldCamera: MGLMapCamera, to newCamera: MGLMapCamera) -> Bool {
    newCamera.centerCoordinate = mapView.userLocation!.coordinate
    mapView.camera = newCamera

    return true
}

希望这对您有所帮助。