Определение, видим ли маркер в Google Maps - PullRequest
5 голосов
/ 16 марта 2009

Я разрабатываю приложение Google Maps и столкнулся с этой проблемой. Мне нужно удалить все маркеры, которые находятся за пределами карты.

Есть ли какой-нибудь простой способ сделать это, кроме хранения массива и просмотра значения каждого маркера?

Я не могу использовать MarkerManager, потому что у меня слишком много очков. Я не хочу использовать clearOverlays (), потому что он закроет любой открытый маркер.

Любая помощь будет оценена.

1 Ответ

4 голосов
/ 16 марта 2009

Если вы не хотите рассматривать каждый маркер по отдельности, сначала разбейте их на несколько наборов и вычислите границы набора.

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

Сколько очков мы говорим?

Обновление

а. Около 65 тыс.

Я понимаю, почему вы не можете создать 65K GMarkers при загрузке страницы. Это займет более 5 секунд.

Я бы сгруппировал их в группы по 200 штук, и когда край группы окажется в пределах 1/4 ширины карты за пределами отображаемого края, тогда найду, создаю маркеры и отображаю смежную группу. Если он выходит за пределы 1/2 ширины карты внешнего края, то скрывает группу.

Другие альтернативы - использовать стороннюю библиотеку, такую ​​как

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...