上で OpenGL レイヤーを実行しているアプリを取得しましたMKMapView
。これは、iOS 6 と Apple Maps までは魔法のように機能していました...
iOS 6 / Apple Maps の問題は、パフォーマンスがひどく、マップをパン / ズームすると 3D オブジェクトが飛び回ることです。この問題は、MKMapView
OpenGL を使用してマップをレンダリングすることが原因であると推測していますが、それを機能させる方法については困惑しています...
iOS 5 / Google マップ バージョンでは、CADisplayLink
レンダリングに通常のマップを使用していますが、Apple マップではひどく遅延することが判明しました。
次に、レンダリングを a に移動して、MKOverlay
そこから「描画フレーム」を呼び出してみました。これにより、パフォーマンスがわずかに向上しましたが、iOS 5 / Google マップ バージョンと比較すると、まだかなりひどいものでした。
結局、マップにパン/ピンチ ジェスチャ レコグナイザーを追加しMKMapView
、マップがパン/ピンチされるたびに手動で「フレームの描画」を呼び出しました。これはオーバーレイよりもわずかに優れていますが、iOS 5 / Google マップでのパフォーマンスにはまだほど遠い.
ただし、iOS 5 を搭載した iPhone 4S でアプリを 45 ~ 50 fps で実行し、iOS 6 を搭載した iPhone 5 で同じアプリを 15 ~ 20 fps で実行すると、非常にイライラします ...
バックグラウンド スレッド、優先度の高いスレッド、優先度の低いスレッドでレンダリングを実行し、遅延させ、非同期で呼び出してみましたが、iOS 5 のパフォーマンスに近づくことはできません :(
MKMapView
iOS 6 の OpenGL レンダリングをカスタム OpenGL レンダリング呼び出しとうまく組み合わせる方法についてのアイデアや提案はありますか?