Клуб API Карт

Выбрать масштаб карты, чтобы все элементы уместились.

Innuendo108
4 июня 2011, 11:03

Необходимо загрузить несколько элементов на карту, и разместить их так, чтобы все были видны. (Выбрать такой нужный zoom надо).

Как это сделать? Я понимаю, что сначала загружаю пусткую карту (с конкретным зумом), а потом добавляю туда элементы. И затем мне получается необходимо перезумить карту - не нашел такого метода в API. Это необходимо делать как-то вручную?

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

Спасибо, да! Это оно!

А у меня вопрос возник. Получилось, но не совсем.

Суть в том, что точкой считается то место, куда метка указывает. Бывает так, что когда метки образуют прямоугольную область, то setBounds устанавливают такие границы, что все точки - влазят, а хвостики от меток - не влазят.

Я для таких целей специально делаю zoomBy на один пункт. Но точки не всегда получаются так, что их нужно чуть-чуть отдалить. А zoomBy я делаю всегда, и бывает что setBounds выставляет так, что все и так хорошо видны (есть ещё место на карте), и я ещё "Зумбаем" уменьшаю на один пункт.


Определить когда коордианты так стали (что хвостики не видны) - не тривиальная задача, т.е. выборочно zoomBy я делать не могу.

А можно как-то setBounds увеличить на совсем чуть-чуть? Чтоб он брал с небольшим запасом (как раз где-то на размер хвостика метки placemark?

Можно попробовать получить из GeoCollectionBounds

центр области методом getCenter и 

 

линейные размеры области методом getSpan,

прибавить к нему какую-то небольшую величину,

а затем создать экземпляр YMaps.GeoBounds

с помощью метода fromCenterAndSpan

и на него уже смаштабировать карту

Спасибо. Супть понял. Буду пробовать

Мне тоже помогло, спасибо за ответ.:-)