Клуб API Карт

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

sergienko.konstantin
25 июня 2014, 22:33

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

 

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

9 комментариев
Подписаться на комментарии к посту
Всеволод Шмыров
26 июня 2014, 10:07
Можно. При помощи geoQuery.
http://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/geoQuery.xml (третий пример).
sergienko.konstantin
26 июня 2014, 22:20

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

Всеволод Шмыров
27 июня 2014, 15:35
А какую задачу вы решаете? В кластеризатор не добавляют объекты, которые сейчас не находятся в видимой области.
sergienko.konstantin
27 июня 2014, 17:33

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

 

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

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

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

sergienko.konstantin
27 июня 2014, 19:45

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

sergienko.konstantin
28 июня 2014, 00:16

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

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

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

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

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

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

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

sergienko.konstantin
28 июня 2014, 15:04

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

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