gpt4 book ai didi

ios - 在 mapView 中加载区域的所有图 block

转载 作者:搜寻专家 更新时间:2023-10-31 22:56:16 25 4
gpt4 key购买 nike

我找到了一种使用 MapKit 缓存图 block 的方法,但我还没有找到任何解决方案来将一个区域内的所有图 block 从顶级图 block 加载到底层图 block 。

我想在我的 map View 中缓存一个矩形区域的所有图 block 。有没有办法在 Mapkit 中做到这一点?

最佳答案

为了在 MKMapView 中加载自定义图 block ,您需要子类化 MKTileOverlay 并覆盖方法url(forTilePath path: MKTileOverlayPath) -> URL

MKTitleOverlay 包含图 block 的 x、y 和 z 属性。所以实现可能是这样的:

override func url(forTilePath path: MKTileOverlayPath) -> URL {
let tilePath = Bundle.main.url(
forResource: "\(path.y)",
withExtension: "png",
subdirectory: "tiles/\(path.z)/\(path.x)",
localization: nil)!
return tile
}

在您的 mapView 设置函数中添加以下内容:

let overlay = CustomTileOverlay()
overlay.canReplaceMapContent = true
mapView.add(overlay, level: .aboveLabels)

也不要忘记在

中返回渲染器
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
return MKTileOverlayRenderer(tileOverlay: overlay)
}

附言raywenderlich.com 上有一个很棒的教程关于那个主题:

关于ios - 在 mapView 中加载区域的所有图 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46144079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com