4

有一个应用程序在MKMapView. 在 iOS 6 和 Apple Maps 之前,这就像一个魅力......

iOS 6 / Apple Maps 的问题是性能很糟糕,导致在平移/缩放地图时 3d 对象会四处跳动。我猜这个问题是由于MKMapView现在使用 OpenGL 来渲染地图,但我不知道如何让它工作......

iOS 5 / Google Maps 版本使用常规CADisplayLink进行渲染,但事实证明,Apple Maps 非常滞后。

然后我尝试将渲染移动到 aMKOverlay并从那里调用我的“draw frame”,这稍微提高了性能,但与 iOS 5 / Google Maps 版本相比仍然很糟糕。

我最终在地图上添加了一个平移/捏合手势识别器,MKMapView并在每次平移/捏合地图时手动调用“画框”。这比覆盖略好一点,但距离 iOS 5 / Google 地图的性能还有很长的路要走。

然而,让应用程序在装有 iOS 5 的 iPhone 4S 上以 45-50 fps 的速度运行,而在装有 iOS 6 的 iPhone 5 上以 15-20 fps 的速度运行相同的应用程序,这是非常令人沮丧的......

我试过在后台线程、高优先级线程、低优先级线程上进行渲染、延迟它、异步调用它,我只是无法接近 iOS 5 的性能:(

任何想法或建议如何愉快地将MKMapViewiOS 6 中的 OpenGL 渲染与自定义 OpenGL 渲染调用结合起来?

4

0 回答 0