iOS6上MapKit的性能问题

更新到iOS 6后,我注意到在使用多个叠加层平移或缩放MKMapView时,服务器性能会下降.我创建的应用程序有大约600种不同颜色的多边形叠加,并且在iOS 5上运行无滞后(即使在较旧的iOS设备上),现在在iOS 6上运行极其缓慢(当缩放和平移时),即使在最新设备上也是如此.

我的预感是,这是因为设备必须实际动态创建地图(因为它基于矢量),而不仅仅是在屏幕上显示切片.

有没有人有任何想法来减少平移或缩放地图时遇到的滞后?

一些额外的信息,这种低帧速率也会在缩放或平移显示屏幕上根本没有显示在屏幕上的区域时发生,因此它与屏幕上显示的叠加层的创建无关.

解决方法

您可以尝试将所有叠加层合并为一个叠加层.这可以大大提高性能.

我们的想法是创建一个带有包含所有多边形的边界框的叠加层.这样就可以始终调用mapView:viewForOverlay.为包含所有多边形的叠加层创建属性.然后在叠加视图的drawMapRect:方法中,测试所有多边形以与mapRect交叉,并在必要时绘制它们.这很重要,因为您不希望绘制屏幕外的多边形.

此策略基于Apple自己的MapKit示例项目.查看HazardMap以获取在单个MKOverlayView中绘制多个对象的示例,并查看BreadCrumb以获取如何在drawMapRect方法中有效地测试多边形以与当前mapRect交叉的示例

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...