Клуб API Карт

Как удалить метки за пределами видимой области карты (2.1)

Пост в архиве.

Собственно в теме вся суть вопроса и указана.

 

Метки подтягиваются с сервера и по событию boundschange выводятся на карту в цикле через map.geoObjects.add, но все то, что за ее пределами - не плохо было бы удалить.

 

Смотрел в сторону map.geoObjects.each(...), но что-то не соображу как выудить координаты метки. Да и думаю есть какое-то встроенное решение этого вопроса, просто я его в упор не вижу.

3 комментария
Всеволод Шмыров
27 января 2016, 22:40
Добрый день. Думаю, что вам лучше посмотреть в сторону ObjectManager. Он как раз был создан для оптимизации отображении большого кол-ва объектов на карте.
https://tech.yandex.ru/maps/jsbox/2.1/object_manager
В нем как раз реализовано скрытие объектов вне видимой области.
Кирюха Вот
27 января 2016, 22:40

Отвечу сам себе.

 

 

map.geoObjects.each(function(e) {

        console.log(e.geometry.getCoordinates());

});

 

тогда хотя бы geoQuery.  Удобнее будет.

var newResult = myGeoQueryResult.add(geoObjectCollection).searchIntersect(myMap.getBounds());
alert("Количество геообъектов в указанной области: " + myGeoQueryResult.getLength());
myGeoQueryResult.addToMap(myMap)


https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/GeoQueryResult-docpage/