Клуб API Карт

Определение объектов на видимой части карты

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

Доброго времени суток!

Все добавленные оверлеи представляют из себя собственно div наложенный поверх карты. Отсюда следует что можно ему задать id.

Подскажите пожалуйста, можно ли как-нибудь обратится только к оверлеям, находящимся на видимой части карты?

Более конкретно ситуация такова:

Я загружаю карту. Сразу же добавляю предположим 100 оверлеев. После в форме ввожу адрес и нажимаю "Найти". На карте происходят перемещения к нужному адресу с изменением масштаба. В видимой области отображаются 3 оверлея. Собственно к ним и нужно обратится )

5 комментариев

Не советую делаю это через DOM интерфейсы.


Запросите CoordPoint плейсмарков и проверьте их на вхождение в viewport

вам правильно подсказал.


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



    // Карта
var map = new YMaps.Map(document.getElementById("YMapsID")),
   
    // Группа объектов
    group = new YMaps.GeoObjectCollection();

// Отбираем объекты, которые попали в видимую область карты
var filter = group.filter(function (obj) {
    return map.getBounds().contains(obj.getGeoPoint());
});

besmart.kreditmart
28 января 2016, 07:25

Большое спасибо!


А в случае использования диспетчера объектов, можно ли вместо меток управлять пользовательскими оверлеями или же при создании метки через дом к ней обратится, с целью задания id для дива?

Диспетчер объектов умеет управлять только стандартными метками.


Опишите поподробнее решаемую задачу. Постараюсь что-нибудь подсказать.

<a href="http://google.com">

Обновлено 2 февраля, 21:50