2011-02-04 10 views
1

MKMapViewから現在表示されていないMKAnnotationsを削除するかどうかは、メモリ管理、バッテリ寿命、プロセッサ使用率の点で優れていますか?MKAnnotationsを削除する方が良いでしょうか?

私は、現在の地域では約20個しか表示されていない、大量の注釈(約1000件)について話しています。私はMapKitにピンを隠して仕事をさせるべきでしょうか、または可視領域に応じてアノテーションの追加/削除を処理する必要がありますか?

答えて

2

注釈がオフスクリーンであっても、大きなメモリが使用されることはありません。 MKAnnotationは非常に軽量になるように設計されているため、小さくしてください。メモリー・ホッグは関連するビュー(MKAnnotationView)です。数百以上の可視化があれば、古いデバイスではクラッシュする可能性があるため、減速と大量のメモリ使用が発生します。 1000はすべてのデバイスを遅くしますが、おそらくクラッシュしません。

要約すると、オフスクリーンアノテーションは関係ありません。あなたが画面上であまりにも多くの場合、問題は発生します。そのためには、パフォーマンスを向上させるためにアノテーションを削除する必要があります。注釈を削除して置き換える方法は、はるかに難しい質問です。

+0

ありがとう、ネバン! 注釈の削除と置き換えについて - 私はクラスタリング手順に取り組んでいます。そのため、私はこの質問をしました...オフスクリーンのグループ化されたマーカーをどうすればいいですか?今では、削除せずにそれらをグループ解除するだけでいいと思います。 – WASD42

+0

グループ化に時間がかかりすぎない場合は、それらをすべてグループ化します(オフスクリーンのグループも含めて)。そうすることで、画面の端でカットされたグループを扱う方法に対処する必要はありません。また、マップを移動するときにグループを追加する必要がないことも意味します。 –

1

私は100を超えるアノテーションを同時に表示しないようにしています。 MKMapViewがそれを処理させるようにすると、ユーザーが全世界にズームアウトするのを防ぐことで、mapViewで1000個の注釈をすべて表示させることができますか?

+0

実際には、ネイティブPhotosアプリケーションのようにズームアウトして注釈をグループ化しようとすると問題が発生しています:) 実際、既にかなりのアニメーションでグループ化してグループ化できますが、オフスクリーンのグループ化された注釈で行う... – WASD42

+0

@ WASD42:面白い。ちょうど興味深い:どのグループ化アルゴリズムを使用していますか? –

関連する問題