-1

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

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

4

1 回答 1

2

您可以使用该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
}

希望这可以帮助。

于 2020-04-16T14:59:34.500 回答