首页 > 解决方案 > 超过maximumZ后,MKTileOverlay Tiles消失

问题描述

loadTileAtPath瓦片是通过/URLForTilePath使用子类从磁盘加载的MKTileOverlay

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

标签: iosmapkitmktileoverlay

解决方案


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

例如,如果在从缩放级别 20 过渡到缩放级别 21 时,图块恰好消失了,并且您的图块源的最大缩放级别为 20,那么您的行为看到可能是折线使 MKMapView 的渲染切片缓存部分无效的结果。

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

但是,我也曾经通过更改覆盖层的级别看到了一个修复,从“MKOverlayLevelAboveLabels”更改为 [mapView addOverlay:overlay level:MKOverlayLevelAboveRoads];

我希望这些建议能让你更进一步:)


推荐阅读