Клуб API Карт

Спозиционировать карту так, чтобы были видны все отрисованные метки

Пост в архиве.
alisa.haponenko
15 июля 2010, 16:31

Привет!

Такой есть вопрос. Есть карта. Предположим у меня выставлен 15-ый зум и я разглядываю дома родного города. И тут я нажимаю заветную кнопку и мне с сервера приходят данные о каких-то для меня очень важных метках.Они отрисовываются. Но! Они находятся за пределом видимости моего экрана.

 

Так вот вопрос, есть ли в API функционал, который бы сцентрировал карту и выставил зум, чтобы на экране были видны все пришедшие метки. Или мне самой нужно высчитывать нужные координаты и зум соответственно?

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

Вам нужно воспользоваться объектом GeoCollectionBounds. В него нужно добавить координаты всех ваших меток, по которым он рассчитает видимую область. Потом передать карте в метод setBounds. пример кода:


 



var placemarks = []; // массив меток, он у вас скорее всего уже есть


var gcb = new YMaps.GeoCollectionBounds();


for (var i=0; i < placemarks.length; i++) {


   gcb.add(placemarks[i].getGeoPoint());


}


map.setBounds(gcb);



 

Благодарю)