Клуб API Карт

Обновление данных после zoom || drag'n'drop

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

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

 

Есть ли какой-нибудь способ при изменении зума, либо при перетаскивании карты получать все GeoObject, которые сейчас видны на карте?

9 комментариев
Всеволод Шмыров
28 января 2016, 00:01
Можно. При помощи geoQuery.
http://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/geoQuery.xml (третий пример).
Константин С.
28 января 2016, 00:01

А как быть если у меня cluster? У меня после инициализации map.geoObjects.getLength() === 1

Всеволод Шмыров
28 января 2016, 00:01
А какую задачу вы решаете? В кластеризатор не добавляют объекты, которые сейчас не находятся в видимой области.
Константин С.
28 января 2016, 00:01

У меня есть список объектов с локациями, которые я наношу на карту и отобржаю рядом списком. Их много, поэтому решил что кластеры подойдут, потому что много точек можно объединить в одну большую.

 

И я хочу при boundschange обновлять список. Примерно как на airbnb, но в обратную сторону.

Вывод меню со статусом точек в кластеризаторе можно посмотреть в этом примере

http://ymapsapi.ya.ru/replies.xml?item_no=892

Константин С.
28 января 2016, 00:01

О, спасибо большое! Это то что надо.

Константин С.
28 января 2016, 00:01

Есть 2 вопроса:

1. У меня ощущение, что isShown захватает ещё объекты, которые вне видимости карты. Такое возможно?

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

3. Можно ли каким-то образом достать информацию из GeoObject который виден? Например, id.

1. Не знаю, я не проверял. может там и берется с запасом

2. Примеров с Ангулар у меня нет

3. Вы смотрели пример? там так и делается

Константин С.
28 января 2016, 00:01

1. В вашем примере тоже можно добиться того, что на карте нет ни одного объекта, но в таблице всё равно видны объекты с isShown === true

3. Спасибо, видимо под конец рабочего дня не заметил самого главного :)