Как проверить, есть ли какие-либо маркеры в окне просмотра Google Maps? - PullRequest
4 голосов
/ 01 июня 2010

Каков наиболее эффективный подход для проверки наличия каких-либо маркеров в области просмотра?

Идеальное решение не требует проверки всех маркеров по одному, если оно содержится в окне просмотра.

Ответы [ 2 ]

5 голосов
/ 21 июля 2010

Лучшее решение, которое я придумал, -

  • при запуске приложения создайте массив со ссылкой на маркеры - отсортированные по 1 координате, т.е. по широте
  • получить границы области просмотра с GMap2.getBounds() (как предложил paullb)
  • взять меньшую широту границ области просмотра и найти ее в массиве (быстрее всего достичь с помощью бинарного поиска)
  • проверить, вписывается ли каждый следующий маркер в область просмотра (до широты маркера <= верхняя широта области просмотра). </li>
1 голос
/ 01 июня 2010

Используйте GMap2.getBounds (), чтобы найти ограничивающий прямоугольник. Используйте GLatLngBounds.containsLatLng (), чтобы проверить каждый маркер, чтобы увидеть, видим ли он.

В качестве альтернативы вы можете попробовать использовать тот же подход с маркером кластера, если значение каждого кластера хранится в легко доступном виде. (не смотрел сам)

...