更具体地说...... iOS的MapKit框架在渲染之前是否具有MKPolyline和MKPolygon叠加的内置泛化?
模拟器看起来很粗糙,显示了由数百个点组成的几条折线。我是否达到了iPhone绘图性能的最高点,或者MapKit没有被编程为自动推广数据,从而实现了设备的绘图性能?
我知道我可以将测试用例进行比较,但是为测试用例创建/集成这样的算法非常密集。我希望在我需要采取行动之前,有人会对此有所了解。
谢谢!
答案 0 :(得分:1)
我不知道generalize
部分,但您可以通过使用其他方法来提高性能:
在地图上绘图时,多个MKPolygons等导致大量内存使用。这是由于MapKit没有重复使用叠加层。由于注释具有reuseWithIdentifier,因此覆盖不会。每个叠加层在地图上创建一个新图层作为MKOverlayView,其中包含叠加层。通过这种方式,内存使用量会快速上升,滚动变得......让我们说几乎不可能缓慢。
因此有一种解决方法:您可以将所有MKOverlay(在您的情况下为MKPolygons和MKPolylines)添加到一个MKOverlayView,而不是单独绘制每个叠加层。这样,您实际上只创建了一个MKOverlayView,因此无需重复使用。
this question中的答案包含Apple开发者论坛的链接以及解决方法。
我以多种MKPolygons
的方式使用了这种方法,效果很好。此外,我计划在将来使用MKPolylines
为我的应用。我相信可以在一个MKOverlayView
...
使用此方法,您可能不需要generalize
绘制MKPolygon叠加层。此外,实施和测试IMO要容易得多; - )