@morpeh58

Как фильтровать Placemark, входящие в зону просмотра карты, так, чтобы при открытие balloon он не закрывался?

Сначала создается Clusterer, в который будут добавляться Placemark.
Обработчик вешается на событие boundschange
Ymap.events.add('boundschange', this.handleChange);

Далее делается выборка по объектам
const query = ymaps.geoQuery(this.geoPlaceMarks);
const visibleGeoObjects = query.searchInside(mapInstance);

Далее фильтрация что добавить, что удалить из кластера
const geoObjectsToRemove = this.geoPlaceMarks.filter(({ properties }) => ids.some(id => id !== properties.get('id')));
const geoObjectsToAdd = this.geoPlaceMarks.filter(({ properties }) => ids.some(id => id === properties.get('id')));
clusterInstance.remove(geoObjectsToRemove);
clusterInstance.add(geoObjectsToAdd);

Может кто знает способ получше?
  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы