首页 > 解决方案 > 对于具有 3D 投影的某些缩放级别,NMAMapView 上的 boundingBox 不正确

问题描述

如果我将我的NMAMapView完全缩小以便您可以看到地球仪 ( NMAMapViewMinimumZoomLevel),则对 s boundingBox 属性的调用NMAMapView确实会为所有 top* / bottom* 属性返回以下坐标:

po self.hereMapView.boundingBox?.topRight
▿ Optional<NMAGeoCoordinates>
  - some : <NMAGeoCoordinates: 0x2828bde00; latitude = -90.000000; longitude = 0.000000; altitude = -340282346638528859811704183484516925440.000000>

self.hereMapView.boundingBox?.topLeft
▿ Optional<NMAGeoCoordinates>
  - some : <NMAGeoCoordinates: 0x2828bca20; latitude = -90.000000; longitude = 0.000000; altitude = -340282346638528859811704183484516925440.000000>

// ...

上面的某些缩放级别也是如此。这对我来说似乎不正确,这是 Here SDK 中的错误吗?

编辑:这似乎只是 3D 投影的问题,在最低缩放级别的 2D 投影中,我们确实得到了有效坐标

标签: ioshere-apihere-ios

解决方案


在更新问题(2D 投影中的有效边界框)和@dashchak 的评论之后,这是预期的行为,边界框是一个矩形,其上限为与矩形边界不同的值。

文档

地图的 boundingBox 是最小的 NMAGeoBoundingBox,它包含当前在屏幕上可见的所有地图区域。如果地图在 2D 视图中(零倾斜),boundingBox 应该(几乎)与屏幕矩形的边界完全重合。如果地图是 3D 视图,则可视屏幕区域在地理空间中是一个梯形(由于透视关系,屏幕顶部的可视区域比底部宽)。因此,在这种情况下,边界框将包含一些在屏幕上实际上不可见的区域。


推荐阅读