MKTileOverlay Tiles 在超过 maximumZ 后消失

MKTileOverlay Tiles disappear after exceeding maximumZ

图块是通过 loadTileAtPath / URLForTilePath 从磁盘加载的,子类为 MKTileOverlay

设置叠加层的 maximumZ 时,不再加载超出该级别的图块(如预期的那样)。但是,上一层的瓷砖也会消失。有什么想法吗?

我已经有一段时间了,但过去我遇到过一些问题。我认为这可能与内部缓存或覆盖有关。

例如,如果碰巧在从缩放级别 20 到缩放级别 21 的过渡时出现图块消失的情况,并且您的图块源的最大缩放级别也是 20 的情况,那么您看到的行为可能是多段线使 MKMapView 的渲染图块缓存部分无效的结果。

您所看到的情况可能是因为您的图块源没有提供足够高的缩放级别的图块来满足您尝试进行的缩放量。通常 Apple 的 MKMapView 渲染缓存提供一些有限的过度缩放,但是当您执行触发新渲染的操作(如添加线条)时,渲染缓存会失效并且伪过度缩放停止工作。

然而,我也曾经看到一个简单的修复方法,只需更改叠加层的级别, 从 "MKOverlayLevelAboveLabels" 更改为 [地图视图 addOverlay:overlay level:MKOverlayLevelAboveRoads];

希望这些建议能让你走得更远:)