2009-03-16 2 views
5

Google Mapsアプリケーションを開発中で、この問題が発生しました。私は地図から範囲外のマーカーをすべて削除する必要があります。Googleマップでマーカーが表示されているかどうかを確認する

これを行う簡単な方法はありますか?配列を保持し、各マーカーのlatinngを調べるだけですか?

私は方法が多すぎるためMarkerManagerを使用できません。私はclearOverlays()を使用したくないのは、開いているマーカーをすべて閉じるためです。

ご協力いただければ幸いです。

答えて

4

各マーカーを個別に見る必要がない場合は、それらを最初にいくつかのセットにクラスタ化し、セットの境界を計算します。

現在、マップに表示されているものに応じてセットを表示または非表示にすることができます(GMap2.getBounds()を使用して地図の境界を見つけることができます)。

私たちは何点について話していますか?

更新

65KについてA.。

ページが読み込まれたときに65KのGMarkerを作成できない理由がわかります。それは5秒以上かかるでしょう。

私はそれらを200 ishのグループにクラスタリングし、グループのエッジが表示されたエッジの外側に1/4のマップ幅内に入ると、マーカーを見つけて作成し、隣接するグループを表示します。それは外縁のマップ幅の1/2の外に出て、グループを隠します。 http://googlemapsapi.martinpearman.co.uk/articles.php?cat_id=1

  • クラスタラ - -

    他の選択肢は

  • +0

    65Kが、私は時間 – Sklivvz

    +0

    で300人以上を表示することはありませんヒントをお寄せいただきありがとうございます。もう1つの問題は、65kマーカーを生成するための情報をダウンロードするには時間がかかりすぎるということです。 – Sklivvz

    +0

    サーバー側をグループ化し、初期ページの負荷でグループ境界を読み込みます。グループが地図の表示されている部分に近づくと、AJAXを使用してその場でポイントをダウンロードすることができます。 – RichH

    関連する問題