这些块是通过带有子类loadTileAtPath / URLForTilePath的MKTileOverlay从磁盘加载的。
当设置覆盖层的maximumZ时,超出该级别的瓷砖将不再加载(如预期的那样)。然而,上述水平的瓷砖也消失了。有什么想法吗?
发布于 2020-01-02 18:53:37
对我来说已经有一段时间了,但我过去对此有过一些意见。我认为这可能是带有内部缓存或覆盖的东西。
例如,如果瓷砖恰好在从缩放级别20到缩放级别21的过渡阶段消失,而且您的瓷砖源的最大缩放级别为20,那么您所看到的行为可能是多重行导致MKMapView呈现的瓷砖缓存部分无效的结果。
这可能是你所看到的可能发生,因为你的瓷砖源没有提供足够高的缩放水平,以达到你想要做的缩放的程度。通常,苹果的MKMapView呈现缓存提供了一些有限的过度缩放功能,但是当您做了一些触发新呈现(比如添加行)的操作时,呈现缓存就会失效,伪过度缩放将停止工作。
然而,我也曾经看到过一个简单的修复方法,就是通过更改覆盖层的级别,从"MKOverlayLevelAboveLabels“更改为mapView addOverlay:overlay :MKOverlayLevelAboveRoad;
我希望这些建议能让你更进一步:)
https://stackoverflow.com/questions/59410630
复制相似问题