gpt4 book ai didi

ios - MKMapCamera 无法缩放到正确的高度

转载 作者:行者123 更新时间:2023-12-01 19:43:00 24 4
gpt4 key购买 nike

当我在我的 map View (MapKit) 上设置具有特定高度的 MKMapCamera 时,它有时不会缩放到正确的高度。我认为这与 map 没有完全加载有关,所以它停在更高(950m 左右)而不是我设置的高度(约 280m)。

最初我在第一次加载 map 时注意到了这个问题,但它似乎与较低的高度有关。更高的海拔似乎工作正常。

这是一个演示问题的视频:https://streamable.com/644l1
在视频中,我将同一台相机设置了两次。

设置摄像头的代码:

let distance = currentHole!.teeCoordinate.distance(to: currentHole!.greenCoordinate)
let altitude = Double(distance) * 2.5

let camera = MKMapCamera(
lookingAtCenter: currentHole!.centerCoordinate(),
fromDistance: altitude,
pitch: 0.0,
heading: currentHole!.teeCoordinate.bearing(to: currentHole!.greenCoordinate) - 20
)
mapView.setCamera(camera, animated: true)

我也尝试使用类似的东西:
UIView.animate(withDuration: 1.0, animations: { () -> Void in
self.mapView.camera = camera
}, completion: { (done) -> Void in
print("Animation complete")
})

改为做动画。将持续时间设置为非常高的值(例如 10 秒左右)时效果更好(不完美)。

关于这里可能是什么问题的任何想法?

更新:

它似乎只发生在“卫星天桥” map 上。卫星没问题。

最佳答案

我不确定为什么会发生这种情况,但我有一个理论。当您使用天桥 map 类型时,相机的最低高度受 map 中心最高结构的限制。

如果您使用 map 应用程序,将其设置为 3D 卫星 View 并直接从一栋高楼(比如纽约的帝国大厦)上方移动,您只能通过捏合放大到略高于建筑物高度的位置。如果您将相机从高大的结构上移开,您可以捏合以进一步放大。 map 不会让您放大结构或在结构内部进行缩放。如果您放大到一栋高层建筑的入口并尝试向该建筑物平移,则 map 将向上调整高度,而无需您捏拉以缩小以防止您穿过建筑物。

所以在 map 完全加载之前,它不知道中心最高的结构会是什么。为防止您在高大的结构内放大, map 限制了最小高度。 map 完全加载后,它知道没有高大的结构,它可以让你放大得更近。

当您在动画上设置较长的持续时间时,它会让 map 在到达较低高度之前有机会加载。 map 知道没有高大的结构并允许进一步放大。我想说,如果您尝试更长的持续时间动画但限制了网络带宽,它将再次停止工作。

请注意,卫星模式允许您穿过高大的建筑物。

作为一种解决方法,请尝试使用 mapViewDidFinishLoadingMap:mapViewDidFinishRenderingMap:fullyRendered:知道何时放大更多。

关于ios - MKMapCamera 无法缩放到正确的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52534939/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com