[英]iOS 7 is there a way to know when the MKTileOverlay is finished loading tiles?
[英]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 方法! 在應得信用的情況下給予信用,這是我們解決方案的來源:-
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.