Все для вебмастера | MOGUTAHELP.RU

Зарегистрируйте бесплатный аккаунт чтобы стать участником нашего портала! После входа в систему вы сможете получить доступ к информации для пользователей , добавлять свои собственные темы и сообщения, а также общаться с другими участниками!

Обсуждение Помощь Как подключить расчет стоимости доставки?

Llkeeper

Пользователь
Пользователь
Сообщения
35
Баллы
48
Добрый вечер).
Никто не устанавливал на сайт Расчет стоимости доставки яндекса?
из файла deliveryCalculator.js



Код:
ymaps.ready(init);



function init() {

    // Стоимость за километр.

    var DELIVERY_TARIFF = 50,

    // Минимальная стоимость.

        MINIMUM_COST =1500,

        myMap = new ymaps.Map('map', {

            center: [53.189059, 50.245038],

            zoom: 9,

            controls: []

        }),

    // Создадим панель маршрутизации.

        routePanelControl = new ymaps.control.RoutePanel({

            options: {

                // Добавим заголовок панели.

                showHeader: true,

                title: 'Расчёт доставки'

            }

        }),

        zoomControl = new ymaps.control.ZoomControl({

            options: {

                size: 'small',

                float: 'none',

                position: {

                    bottom: 145,

                    right: 10

                }

            }

        });

    // Пользователь сможет построить только автомобильный маршрут.

    routePanelControl.routePanel.options.set({

        types: {auto: true}

    });



    // Если вы хотите задать неизменяемую точку "откуда", раскомментируйте код ниже.

   routePanelControl.routePanel.state.set({

        fromEnabled: false,

        from: 'проезд Мальцева'

     });



    myMap.controls.add(routePanelControl).add(zoomControl);



    // Получим ссылку на маршрут.

    routePanelControl.routePanel.getRouteAsync().then(function (route) {



        // Зададим максимально допустимое число маршрутов, возвращаемых мультимаршрутизатором.

        route.model.setParams({results: 1}, true);



        // Повесим обработчик на событие построения маршрута.

        route.model.events.add('requestsuccess', function () {



            var activeRoute = route.getActiveRoute();

            if (activeRoute) {

                // Получим протяженность маршрута.

                var length = route.getActiveRoute().properties.get("distance"),

                // Вычислим стоимость доставки.

                    price = calculate(Math.round(length.value / 1000)),

                // Создадим макет содержимого балуна маршрута.

                    balloonContentLayout = ymaps.templateLayoutFactory.createClass(

                        '<span>Расстояние: ' + length.text + '.</span><br/>' +

                        '<span style="font-weight: bold; font-style: italic">Стоимость доставки: ' + price + ' р.</span>');

                // Зададим этот макет для содержимого балуна.

                route.options.set('routeBalloonContentLayout', balloonContentLayout);

                // Откроем балун.

                activeRoute.balloon.open();

            }

        });



    });

    // Функция, вычисляющая стоимость доставки.

    function calculate(routeLength) {

        return Math.max(routeLength * DELIVERY_TARIFF, MINIMUM_COST);

    }
}
 
Последнее редактирование модератором:
Верх