我当前用于向 MapView 添加叠加层的代码在缩放时非常慢。瓷砖最初渲染大约需要 2 或 3 秒。我想知道在用户开始放大地图之前,是否有一种方法可以调用我用来在打开应用程序时为每个缩放级别缓存所有图块的 API。或者,如果有任何其他提高效率的建议,我很乐意听到。谢谢!
这是我的代码,每 0.5 秒更改一次显示的叠加层
@objc func changeOverlay() {
if(currentOverlay == 9) {
currentOverlay = 0
}
let allOverlays = mapView.overlays
mapView.removeOverlays(allOverlays)
overlayTimeLabel.text = overlayTimeArray[currentOverlay]
if(overlays.count == 9) {
mapView.addOverlay(europeOverlays[currentOverlay], level: .aboveRoads)
mapView.addOverlay(northAmericaOverlays[currentOverlay], level: .aboveRoads)
currentOverlay += 1
}
}
这是我的渲染器代码
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
let renderer = MKTileOverlayRenderer(overlay:overlay)
renderer.alpha = 0.8
return renderer
}