簡體   English   中英

iOS - 某些圖塊未在自定義 MKTileOverlay 中呈現

[英]iOS - Some tiles not rendered in a custom MKTileOverlay

我在我的 iOS 項目中使用 MapKit 有一個自定義的 MKTileOverlay,它大部分時間都可以正常工作。 但是,在放大/縮小幾次並平移地圖后,一些圖塊沒有被繪制。

起初我認為這是一個沒有加載瓷磚的簡單情況,所以我對 MKTileOverlay 進行了子類化並在控制台中添加了日志記錄。 它表明所有瓷磚都被完美地加載並交付到結果塊。

由於我的想法不多了,我創建了一個本地圖塊生成器,它只返回帶有 x/y/z 路徑和繪制的框架的圖像,以查看缺少哪些圖塊。

缺少圖塊示例圖像

不幸的是,即使使用本地生成的圖塊,問題仍然存在,因此它與 Internet 連接無關。 另一個奇怪的行為是,如果我有兩個自定義疊加層,它們將是完全相同的圖塊,但不會在兩個疊加層上呈現。

我現在能想到的唯一解決方案是將 tile 渲染器子類化並確保顯示所有內容,因為無法知道 tile 未呈現。 然而,這聽起來像是很多工作和“重新發明輪子”的任務......

我們也遇到了缺少圖塊的問題 - 嘗試在新西蘭周圍繪制地圖圖塊。 MKOverlayRenderer 甚至沒有請求切片。 我們陷入了一個兔子洞,認為這一定是因為新西蘭靠近 180/0 緯度邊界。 不。 這是因為子類方法:-

- (void)loadTileAtPath:(MKTileOverlayPath)path result:(void (^)(NSData * __nullable data, NSError * __nullable error))result;

即使沒有要返回的數據,也必須始終調用 result 方法! 在應得信用的情況下給予信用,這是我們解決方案的來源:-

MKTileOverlay 沒有繪制每個圖塊?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM