2012-02-14 9 views
0

ウェブサイトにGoogleマップの地図を表示し、現在の地図エリアに数百のマーカーをロードして表示することができます。問題は、地図がズームイン/アウトされたり移動されたときの動作方法で、マップエリアが変更されます。必要なときにのみGoogleマップにマーカーを追加する

マップの一部が以前と同じで、マーカーもその中にあります。しかし、新しい地図の一部が追加され、新しいマーカーが追加されるべきです。

現在、私は最も簡単な解決策を行っています。すべてのマーカーをクリアし、現在のマップエリアのマーカーを取得して追加します。これは、クリアとすぐ後の追加のためにマーカーに(明らかに)ちらつきの効果をもたらします。

この状況に対処する効率的な方法は何ですか?

マーカーが既にマップに追加されているかどうかを確認する方法はありますか?

+0

コードは表示できますか? – duncan

答えて

0

あなたがズームアウトして、あなたがズームインするときにそれらをグループ化を解除するとき一緒に接近している、そのグループのマーカーに、マーカークラスタまたはクラスタ化アルゴリズムを使用することができます。これは、大幅にデータベースクエリ時間及び地図描画を減らすことができます。良い解決策はkdツリーです。

0

マーカーがマップに追加されているかどうかを確認するには、マーカーのgetMapメソッドを呼び出し、マップオブジェクトを返す場合は追加されています。

マーカーが地図の可視領域にあるかどうかを確認するには、LatLngBoundsを返すマップでgetBoundsメソッドを呼び出すことができます。次に、返されたLatLngBoundsのcontainsメソッドを呼び出し、マーカーの座標を渡します。

希望します。

関連する問題