Клуб API Карт

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

besmart.kreditmart
8 июня 2010, 14:06

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

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

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

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

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

4 комментария
Подписаться на комментарии к посту

Не советую делаю это через 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
8 июня 2010, 16:50

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


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

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


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