Клуб API Карт

Yandex map multiRouter

grach.abram
11 февраля 2015, 10:38

При изменении одного из полей адреса api прокладывает маршрут и отправляет данные вида

{"moskovskaya-oblast-i-moskva-za-mkad":{"in":0,"boundary":1.5023723653376373},"moskva-vnutri-mkad":{"in":33.66297486470625,"boundary":0},"_outside":{"in":0.4479307932491186}}

в php код, считающий стоимость доставки.

При первом подсчете получается такой маршрут

но в отправляемых данных следующий кусок {"moskovskaya-oblast-i-moskva-za-mkad":{"in":0,"boundary":1.5023723653376373} говорит о том, что маршрут по синей зоне идет 2 км и стоимость доставки считается соответственно. Если вручную поменять любое поле адреса, например, улицу, отправленные данные станут верными и посчитается правильно.

 

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

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

Не надо размещать 5 экранов кода в посте (я его удалил)

Выложите Ваш пример на jsbin или jsfiddle и опубликуйте ссылку

нужен еще ваш HTML (инпуты и пр), а то куда вводить адрес?

там есть отдельное окно для html

 

Сделайте работающий пример (должна отображаться карта)

и тогда будем смотреть

Не получается повесить, код очень сложный. Сервис тормозит.

дайте ссылку на ваш сайт

 http://snt.hzg.su

 http://snt.hzg.su/kotly/gazovye-nastennye-kotly/gazovyy-nastennyy-kotel-baxi-main-5-14-f/

Заходите по второй ссылке, добавьте этот товар в корзину(у него по Москве бесплатная доставка).

Ситуация такая, что когда пользователь зарегистрирован, его данные при оформлении заказа попадают в форму. И первый подсчет доставки по Москве и области идет неправильно, как я описывал выше. Что воспроизвести эту ситуацию Вам надо будет, оформить какойто на московский адрес, тогда этот адрес попадет в сессию. и оформлять 2-ой заказ.

Я стабильно получаю ошибку 

ssMap is undefined

тут

if($(this).closest('.checkoutbox').find('.shiplightbox').find('.map-holder').length>0){

ssMap.setZoom(9);

}