- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我在我的 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")
})
最佳答案
我不确定为什么会发生这种情况,但我有一个理论。当您使用天桥 map 类型时,相机的最低高度受 map 中心最高结构的限制。
如果您使用 map 应用程序,将其设置为 3D 卫星 View 并直接从一栋高楼(比如纽约的帝国大厦)上方移动,您只能通过捏合放大到略高于建筑物高度的位置。如果您将相机从高大的结构上移开,您可以捏合以进一步放大。 map 不会让您放大结构或在结构内部进行缩放。如果您放大到一栋高层建筑的入口并尝试向该建筑物平移,则 map 将向上调整高度,而无需您捏拉以缩小以防止您穿过建筑物。
所以在 map 完全加载之前,它不知道中心最高的结构会是什么。为防止您在高大的结构内放大, map 限制了最小高度。 map 完全加载后,它知道没有高大的结构,它可以让你放大得更近。
当您在动画上设置较长的持续时间时,它会让 map 在到达较低高度之前有机会加载。 map 知道没有高大的结构并允许进一步放大。我想说,如果您尝试更长的持续时间动画但限制了网络带宽,它将再次停止工作。
请注意,卫星模式允许您穿过高大的建筑物。
作为一种解决方法,请尝试使用 mapViewDidFinishLoadingMap:
或 mapViewDidFinishRenderingMap:fullyRendered:
知道何时放大更多。
关于ios - MKMapCamera 无法缩放到正确的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52534939/
我有一个具有可变数量子元素的固定大小的 div。我不知道 children 的大小。目标是缩小它们以适合父级。 例子: .parent { width: 100px; height: 100p
我是一名优秀的程序员,十分优秀!