【发布时间】:2016-11-07 08:14:07
【问题描述】:
我在使用 MapKit 的 iOS 项目中有一个自定义的 MKTileOverlay,它在大多数情况下都能正常工作。但是,在放大/缩小几次并平移地图后,有些图块没有被绘制出来。
起初我认为这是一个简单的瓷砖没有加载的情况,所以我将 MKTileOverlay 子类化并在控制台中添加了日志记录。它表明所有图块都加载得非常好,并传送到结果块。
当我没有想法时,我创建了一个本地图块生成器,它只返回带有路径 x/y/z 和绘制框架的图像,以查看缺少哪些图块。
不幸的是,即使使用本地生成的图块,问题仍然存在,因此它与 Internet 连接无关。另一种奇怪的行为是,如果我有两个自定义叠加层,它们将是完全相同的图块,不会在两个叠加层上呈现。
我现在能想到的唯一解决方案是子类化 tile 渲染器并确保显示所有内容,因为无法知道 tile 没有被渲染。然而,这听起来像很多工作和“重新发明轮子”的任务......
【问题讨论】:
-
您找到解决方案了吗?我相信这是由于用户缩放超过了叠加层的最大 Z 引起的。发生这种情况时,MapKit 不再从该叠加层请求图块;因此,当用户以超过 maximumZ 的缩放级别平移并到达之前未渲染的图块时,MapKit 不会请求它,因此会显示一个空图块。检查这些:stackoverflow.com/questions/4351724/…stackoverflow.com/questions/4417545/…
-
不幸的是,我认为这与缩放无关。它发生在最小/最大范围内的许多不同缩放级别。我的朋友参加了 WWDC 2017,并在一些研讨会上提出了这个问题。 Apple 工程师填写了一份错误报告,现在我们希望它会与 iOS 11 一起修复。
-
我可以在我的项目中重现它,但前提是缩放超过了最大 Z 级别。你对这个错误报告@pppd 有任何参考吗?
-
有同样的问题,有人找到解决方案了吗?我只在 180.0/0.0 的边界上看到这个问题......但在每个缩放级别
标签: ios mapkit mktileoverlay custom-overlay