0

約 1200 個の注釈データを配列にローカルに保存しました。今、私は現在表示している領域に注釈のみを追加/設定したいと考えています。ユーザーがリージョンを更新すると、新しい注釈が追加/設定されます。これを regionChanged メソッドで実装できることはわかっています。これを高速に読み込みたい。これを効率的に実装する方法を教えてください。また、どれが十分に高速かを提案してください

mapview.setAnnotations(annotationarray);

または地域ごとに表示します。アプリケーションのデフォルトのズーム レベルは、一度に 2 ~ 4 個の注釈しか表示されないためです。一度に複数の質問で申し訳ありません。

4

1 に答える 1

0

現在の地域と緯度デルタと経度デルタを使用して、現在のマップの境界ボックスが何であるかを推測できます (これは、現在のマップビューの 4 つのコーナーの座標です)。

各ピンの座標が境界ボックス内にあるかどうかを確認し、内部にある場合は別の配列に保存する必要があります。チェックが終了したら、注釈の配列をマップビューに追加します。

リージョンが変わるたびに、この操作を繰り返す必要があります。

このソリューションがどれほど効率的かはわかりませんが、1200 個のアイテムの配列を反復処理するのは安価ではありません。

このソリューションが非常に遅い場合は、座標を sqlite データベースに保存し、毎回クエリを実行することもできます。

于 2013-02-27T16:27:11.797 に答える