我正在使用通过MKMapView和MKOverlay使用半透明的平铺 map 叠加层的iPhone/iPad应用程序。

我希望用户能够放大 map ,但是我的 map 叠加层的分辨率只能达到6级。

我不想限制缩放。

但是...如果用户放大到“太远”,然后滚动到新的图块,如果它们放大得比覆盖图块的树深,则不会绘制我的覆盖图。

我希望覆盖层能够绘制,即使用户被放大了也是如此。

是否有最佳实践来实现这一目标?

我提出了两个选择:

1)限制用户可以缩放的距离。这不是理想的,因为即使覆盖层是低分辨率的,它们也可能仍在透明的彩色范围内,并且透明的表层看似消失了是令人误解的。

2)预渲染的图块比其他方法要深得多。。。虽然可以,但是它使我的应用程序膨胀了一个数量级。

必须有一个更好的方法。有任何想法吗???

更新:我能找到的最接近的示例代码是WWDC 2010的Apple TileMap示例。他们的代码也遇到了同样的问题-如果您放大得“太远”,则不会显示 map 叠加层。

最佳答案

我通过添加“OverZoom”模式修改了Apple的TileMap示例代码。我已经发布了更多详细信息和我的代码,作为this question的答案。

我希望我能为遇到这个问题的其他人提供帮助。

关于iphone - 防止叠加层在缩放时消失-MKMapView和MKOverlay,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4351724/

10-13 05:29