我们将使用MKTileOverlay来显示带有MKMapView的OpenStreetMap地图。 E.g。
MKTileOverlay *overlay = [[MKTileOverlay alloc] initWithURLTemplate:@"http://tile.openstreetmap.org/{z}/{x}/{y}.png"];
[self.mapView addOverlay:overlay level:MKOverlayLevelAboveLabels];
通过使用MKTileOverlay机制,加载和缓存由MKTileOverlay分配处理。 MKMapView。 现在,我们可以观察到一些奇怪的行为。
似乎长时间使用后性能会下降(可能是由于内存问题?)。 在这种情况下,有些瓷砖会保持空白。
因此,我们有以下问题:
有人知道如何清除磁贴缓存以避免内存问题吗? 如果以前出现问题,有人知道如何重新加载特定的瓷砖吗?
感谢您的反馈和建议。
迈克尔
答案 0 :(得分:0)
看看这个
有一个用于重新加载数据的MKTileOverlayRenderer(渲染器,而不是叠加层)的functionCall
我找到了this tutorial,它描述了如何实现MKTileOverlayRenderer。通过此渲染器,您应该能够通过调用setNeedsDisplayIn(areaToRedraw)(Swift3)来更新所需的图块