Расчёт расстояния при помощи API Карт Яндекс

При помощи приведенного ниже кода можно рассчитать расстояние от одной точки до другой. Код может иметь широкий спектр применения, на его базе можно разработать калькуляторы:

  • Расчёт расчет расстояния
  • Расчёт стоимости доставки
  • Расчёт стоимости грузоперевозок
  • Расчёт стоимости пассажирских перевозок
  • и т.д. и т.п.
Сервера, Web и не только

Исходники

deliveryCalculator.html

Тестовый ключ НЕ БУДЕТ работать на других сайтах. Получить ключ можно в Кабинете разработчика: https://developer.tech.yandex.ru/keys/

				
					<!DOCTYPE html>
<html>
<head>
    <title>Расчет стоимости доставки</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <!--
        Укажите свой API-ключ.
    -->
    <script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU&amp;apikey=<ваш API-ключ>" type="text/javascript"></script>
    <script src="deliveryCalculator.js" type="text/javascript"></script>
    <style>
        html, body, #map {
            width: 100%;
            height: 100%;
            padding: 0;
            margin: 0;
        }
    </style>
</head>
<body>
    <div id="map"></div>
</body>
</html>
				
			

deliveryCalculator.js

				
					ymaps.ready(init);

function init() {
    // Стоимость за километр.
    var DELIVERY_TARIFF = 20,
    // Минимальная стоимость.
        MINIMUM_COST = 500,
        myMap = new ymaps.Map('map', {
            center: [60.906882, 30.067233],
            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: 'Москва, Льва Толстого 16'
     });*/

    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);
    }
}
				
			
Свежие записи
Команда RD

Команда RD и RMDIR позволяют удалять как каталоги, так и

Программы
help2site
10 программ-приколов

Этот пост публикуется в связи с приближающимся 1 апреля. Как известно, это день розыгрышей и различных приколов. Так почему бы не разыграть друга, коллегу или

Интернет
help2site
Как бесплатно раскрутить сайт. Раскрутка сайта бесплатно под Гугл и Яндекс.Раскрутка сайта самостоятельно

Как бесплатно раскрутить сайт под поисковые системы Гугл и Яндекс. Самостоятельная раскрутка сайта в Google и Yandex Как часто люди разочаровываются осознав, что их сайт

Web-Дизайн
help2site
Подборка тем для Drupal

Важность красивого и удобного дизайна сайта я думаю понятна каждому и углубляться в эту тему в этой статье мы не будем, сегодня мы поговорим о темах

Web-Дизайн
help2site
Раскрутка и продвижение сайта в интернете

Продвижение сайта в интернете – об этом мечтает всякий вэб-мастер. А особенно, если это будет бесплатное продвижение сайта (любит народ халяву, что ж тут поделаешь!).

Программы
help2site
Paint — графический редактор, как пользоваться

Оглавление Как пользоваться графическим редактором Paint? Paint – это встроенная функция Windows, с помощью которой можно создавать рисунки в чистой области рисования или на существующих

Web-Дизайн
help2site
Установка модуля Drupal редактора текстов

Для установки модуля редактора текстов (будем использовать редактор текстов FCKeditor и модуль его интеграции в Drupal c аналогичным именем (как у редактора текстов)), скачаем его