【问题标题】:MKTileOverlay, tiles at 180.0 / -180.0 not drawn consistenlyMKTileOverlay,180.0 / -180.0 的图块绘制不一致
【发布时间】:2023-03-04 04:28:01
【问题描述】:

我使用 MKTileOverlay 类通过自己生成的平铺图像覆盖地图。

一切正常,除了在经度 180 或 -180 度的边界上的瓷砖。在这条线上,只有有时会绘制瓷砖......有人可以给我一个提示来解决这个问题吗?

你可以在这个截图上看到效果

地图的这个特定区域应该被这个“默认”图块完全覆盖。平铺图像本身应该没问题,因为它们显示在其他平铺上。

我使用这个 loadTile(at: ... ) 函数来提供生成的平铺图像。打印语句显示该函数对所有图块调用,并且结果函数获取有效图像。只是没有绘制瓷砖..我使用标准的MKTileOverlayRenderer..

override func loadTile(at path: MKTileOverlayPath, result: @escaping (_ data: Data?, _ error: Error?) -> Void) {

    let x: Int = path.x
    let y: Int = path.y
    let zoomLevel : Int = path.z

    // calculate the x for the tile at longitude 180 degree
    let xMax = (1 << zoomLevel) - 1


    if (x == 0) || (x == xMax) {
        print("\(zoomLevel)/\(x)/\(y) requested")
    }

    // local variable to hold the image of the tile
    var localUIImage: UIImage = tileImageForDefaultImage


    // lots of stuff to generate the tile image


    // check if we have a valid image
    if let resultImage = localUIImage.pngData() {

        if (x == 0) || (x == xMax) {
            print("resultImage: \(resultImage.debugDescription)")
        }

        result(resultImage, nil )

    } else {

        let noResultImage = tileImageForDefaultImage.pngData()
        if (x == 0) || (x == xMax) {
            print("noResultImage: \(noResultImage.debugDescription)")
        }

        result(noResultImage, nil )
    }
}

.. 欢迎任何提示 ;-)

【问题讨论】:

    标签: swift mapkit mktileoverlay


    【解决方案1】:

    简而言之:Apple 确认这是 IOS MapKit 中的一个错误。至少 IOS 版本 11 和 12 会受到影响。到目前为止还没有已知的解决方法。

    长版:我为此花了一张 DTS 票,并与一位非常优秀的 Apple 工程师取得了联系。经过一些合作,他可以​​轻松地重现该问题。他让我提交一份错误报告(49270907)。通过这个,他能够与 MapKit 团队交谈,他们确认了这个错误。

    【讨论】:

    • 这仍然是 iOS 13 的问题吗?你认为这个错误会影响我的问题吗?如果我们的两个问题似乎都没有呈现可见的瓷砖,我认为这是相似的? stackoverflow.com/questions/62824057/… 你能指出我的错误报告吗?谢谢!
    • 你是对的。 IOS 13 中该错误已消失。错误编号为 49270907。但可能已经关闭。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    相关资源
    最近更新 更多