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

Posted

技术标签:

【中文标题】MKUserTrackingButton - 如何在不缩小的情况下获取用户位置的中心地图?【英文标题】:MKUserTrackingButton - How to get centre map on user's location without zooming out? 【发布时间】:2018-05-04 14:43:10 【问题描述】:

我已经在我的地图中实现了 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】:

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

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

有没有办法做到这一点?

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

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

【讨论】:

以上是关于MKUserTrackingButton - 如何在不缩小的情况下获取用户位置的中心地图?的主要内容,如果未能解决你的问题,请参考以下文章

ByteDance字节跳动张一鸣:如何阅读如何了解自己如何与人沟通沟通如何安排时间如何正确的看待别人意见如何激励自己如何写作如何坚持锻炼身体如何耐心?...

Markdown公式用法大全

shell编程-如何定义函数如何调用函数如何调试shell

[精选] Mysql分表与分库如何拆分,如何设计,如何使用

四连问:前后端分离接口应该如何设计?如何保证安全?如何签名?如何防重?

集合元素如何添加?如何删除?如何遍历?