Клуб API Карт

zoom не увеличивает

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

Создал карту для Такси Босс. Работать должно так: на главной странице в калькулятор надо вписать два любых адреса в Москве и нажать кнопку "Посчитать". После этого показывается карта с уже готовым маршрутом, причём желательно масштаб подогнать под маршрут, чтоб максимально детально его показать. Сейчас на карте Москва получается почему-то размером с блоху, хотя в скрипте указано: zoom: 10 (calc.js, строка 22)

Помогите с автомасштабом.

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

У вас стоит mapStateAutoApply: true

при построении маршрута карта скрыта, соотв. размер ее контейнера = 0

из-за этого происходит такой эффект.

Пётр Рудой
27 января 2016, 23:09

я пробовал. и myMap.setZoom(10) и отображать с картой до вызова myMap.geoObjects.add(router)

максимум, чего добился - это того, что на мгновение карта отображается как положено и тут же "прыгает" на нулевой зум.

посоветуйте, как мне быть

Попробуйте строить маршрут в обработчике показа div.

Там можно передавать функцию в fadeIn

Пётр Рудой
27 января 2016, 23:09

Так и сделал. Хотя задумано было показать уже готовую карту, чтоб она во время fadeIn() перерисовалась. Но хоть так. Спасибо!

Это не сложно, нужно убрать опцию mapStateAutoApply

И вставлять область самому при получении ответа от маршрутизатора

 

типа того:

 

ymaps.route(...).then(function (route) {

jQuery('...').fadeIn(function () {

    myMap.geoObjects.add(route);

    myMap.setBounds(route.getPaths().getBounds());

});

});