Клуб API Карт

Центрирование карты с использованием YMapsML + кластеры

SSergey.Kolesnikov
6 июня, 12:21

Добрый день!

Помогите пожалуста разобраться с центрированием карты. В JavaScript практически 0. Набросал такой код:

<script src="//yandex.st/jquery/1.9.1/jquery.min.js"></script>
<script src="//api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>

<script type="text/javascript">
ymaps.ready(init);
var myMap;

function init(){
    myMap = new ymaps.Map("map", {
        center: [50,50],
        zoom: 5
    });

    clusterer = new ymaps.Clusterer();

    var result = [];   
    ymaps.geoXml.load('/testing/test-page-02.xml?v='+ (+new Date))
        .then(function (res) {
            res.geoObjects.each(function (geoObject) {
                result.push(geoObject);
            });
            clusterer.add(result);
        }, function (error) {
                console.log(error);
                alert('При загрузке YMapsML-файла произошла ошибка: ' + error);
        });  
    myMap.geoObjects.add(clusterer);

    //myMap.setBounds(clusterer.getBounds());

}
</script>
<div id="map" style="width:1200px; height:700px;"></div>

Результат:

Примелись точки [50,50]. При добавлении:

myMap.setBounds(clusterer.getBounds());

вылазит ошибка. Я так понимаю, что надо вытащить каким-то образом из geoObject все координаты и добавить куда-то (коллекция возможно). Подскажите пожалуйста, что необходимо сделать.

2 комментария
Подписаться на комментарии к посту
Перенесите вызов setBounds в обработчик then сразу после добавления в кластеризатор:
clusterer.add(result);
myMap.setBounds(...);
SSergey.Kolesnikov
6 июня, 14:00
dimik,
Вы просто чудо) Работает, спасибо. Второй день бьюсь с этими картами, ничего не выходило.