我在我的iOS项目中使用MapKit创建了一个自定义的MKTileOverlay,大部分时间都可以正常工作。然而,在缩放几次和移动地图后,有些瓦片没有被绘制出来。
起初,我以为这是简单的瓦片未加载,所以我创建了一个MKTileOverlay子类,并在控制台中添加了日志记录。它显示所有瓦片都已经完美地加载并交付给结果块。
当我没有更多的想法时,我创建了一个本地瓦片生成器,它只返回带有它们的路径x/y/z和框架绘制的图像,以查看缺少哪些瓦片。
不幸的是,即使使用本地生成的瓦片,问题仍然存在,因此与互联网连接无关。另一个奇怪的行为是,如果我在彼此上面有两个自定义图层,那么将完全相同的瓦片未被渲染在两个覆盖层上。
我现在唯一能想到的解决办法是创建一个瓦片渲染器的子类,并确保一切都显示出来,因为没有办法知道瓦片是否已被渲染。然而,这听起来像是一项很大的工作和“重复造轮子”的任务...