4

ビューポート内にマーカーがあるかどうかを確認する最も効率的な方法は何ですか?

ビューポートに含まれている場合、完全なソリューションでは、すべてのマーカーを 1 つずつチェックする必要はありません。

4

2 に答える 2

5

私が思いついた最善の解決策は、

  • アプリケーションの起動時に、マーカーを参照して配列を作成します-1つの座標、つまり緯度でソートされます
  • ビューポートの境界を取得しますGMap2.getBounds()(paullbが提案したように)
  • ビューポート境界の低緯度を取り、配列でそれを探します (二分探索で達成するのが最も速い)
  • 後続のすべてのマーカーがビューポート内に収まるかどうかを確認します (マーカーの緯度 <= ビューポートの上緯度まで)。
于 2010-07-21T10:55:53.733 に答える
1

GMap2.getBounds() を使用して境界ボックスを見つけます。GLatLngBounds.containsLatLng() を使用して、各マーカーが表示されているかどうかを確認します。

または、各クラスターの値が簡単にアクセスできる方法で格納されている場合は、マーカー クラスターで同じアプローチを試して使用することもできます。(自分は見ていない)

于 2010-06-01T16:07:11.653 に答える