【问题标题】:how to keep map always centred with current location while zooming in zooming out in MapBox iOS如何在 MapBox iOS 中放大缩小时保持地图始终以当前位置为中心
【发布时间】:2020-04-16 22:59:34
【问题描述】:

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

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

【问题讨论】:

    标签: mapbox mapbox-ios


    【解决方案1】:

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

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2011-11-19
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 2022-12-10
      • 2017-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多