Клуб API Карт

GeoObjectCollection и getBounds()

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

В версии 1.1 многократно обсуждалась проблема, что нельзя запихнуть несколько маркеров в GeoObjectCollection и после этого вычислить getBounds():

http://clubs.ya.ru/mapsapi/replies.xml?item_no=9067

Как это решается в текущей, второй версии Яндекс.Карт? У меня есть произвольный массив с маркерами и я хочу получить границы.

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

Во второй версии у GeoObjectCollection есть метод getBounds

Он и в первой версии есть тоже. Но он выдает null в том случае, если не было присвоено предварительно setBounds().

Ну Вы попробуйте, это быстрее чем пост написать

        var goc = new ymaps.GeoObjectCollection();

        goc.add(new ymaps.Placemark([55.8, 37.6], {

            iconContent: '1',

            balloonContent: 'Балун',

            hintContent: 'Стандартный значок метки'

        }, {

            preset: 'twirl#violetIcon'

        }));

        alert(goc.getLength()); // 1

        alert(goc.getBounds()); // null

 

Не пашет, однако! Что я неправильно делаю? Почему null?

Надо на карту добавить

Если я добавлю на карту, то:

myMap.geoObjects.getBounds() - выдаст границы ВСЕХ маркеров на карте

myGeoObjectCollection.getBounds() - выдаст все тот же null

Но мне не нужны границы всех маркеров, я работаю с подмножеством, у меня есть массив маркеров...

Так, теперь все понятно, прочитал вот этот топик:

http://clubs.ya.ru/mapsapi/replies.xml?item_no=29654

У меня метки разбросаны по разным кластерам и .getBounds() мне, похоже, придется считать вручную.