MKUserTrackingButton - 如何在不缩小的情况下获取用户位置的中心地图?

时间:2018-05-04 14:43:11

标签: swift mapkit

我在我的地图中实现了MKUserTrackingButton,但问题是有时按下它时,它会缩小地图然后以用户的当前位置为中心。我想要做的只是以用户的位置为中心而不缩小。

有办法吗?

MKUserTrackingButton是否有一个我可以更改的属性,以便在点击它时,它只会使地图居中而不是缩小?

以下是添加按钮的代码:

    let Userbutton = MKUserTrackingButton(mapView: mapview)
    Userbutton.layer.backgroundColor = UIColor(white: 1, alpha: 0.8).cgColor
    Userbutton.layer.borderColor = UIColor.white.cgColor
    Userbutton.layer.borderWidth = 1
    Userbutton.layer.cornerRadius = 5
    Userbutton.translatesAutoresizingMaskIntoConstraints = false
    Userbutton.heightAnchor.constraint(equalToConstant: 50).isActive = true
    Userbutton.widthAnchor.constraint(equalToConstant: 50).isActive = true
    mapview.addSubview(Userbutton)

    mapview.addConstraintsWithFormat(format: "H:[v0]-10-|", views: Userbutton)
    mapview.addConstraintsWithFormat(format: "V:[v0]-70-|", views: Userbutton)

1 个答案:

答案 0 :(得分:0)

  

MKUserTrackingButton是否有一个我可以更改的属性,以便在点击它时,它只会使地图居中而不是缩小?

不,当点击MKUserTrackingButton时,它可能会也可能不会更改地图的缩放级别,具体取决于与用户位置的距离等因素。

  

有办法吗?

您可以使用Core Location获取用户的位置,然后直接设置地图的中心坐标,而不更改其缩放级别。

或者更简单,如果您的地图已经显示了用户的位置,您可以从地图的userLocation属性中获取其坐标。