Клуб API Карт

Определение центра карты и её масштаб по набору меток

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

Создаю карту, как это и описано в примерах (сначала определяю центр карты (пока что по местоположению пользователя), устанавливаю масштаб). Наношу на неё несколько меток... Всё бы хорошо, если все метки попадают в размер карты. Но иногда выходит так что несколько меток, скажем, в другом городе располагаются и их не видно при zoom: 13. Как уменьшить карту до того момента когда поместятся все метки и сместить центр карты так чтоб получилось максимальное увеличение для набора ВСЕХ меток?

4 комментария

Добавляйте метки в коллекцию, у нее есть метод getBounds, который возвращает прямоугольную область, в которую входят все метки. У карты есть метод setBounds.

То что нужно! Спасибо!

(ړײ) Игорь Чепур ღ
28 января 2016, 00:15

простите, а можно пример кода?

вообще въехать не могу....

Предположим что есть: 

map = new ymaps.Map...

и myCollectionArray = new ymaps.GeoObjectArray({}, {

        preset: 'twirl#lightblueIcon'

});


через myCollectionArray.add заполняем коллекцию метками.


Тогда:

myCollection = new ymaps.GeoObjectCollection();

myCollection.add(myCollectionArray);

    

map.geoObjects.add(myCollection);

map.setBounds(myCollection.getBounds(),{zoomMargin: 20});

 

Возможно что можно и проще, Но я разобрался вот так