Расчёт маршрута (API Яндекс.Карт)

Доделал сервис расчёта маршрутов для сайта «МК-Лидер» (с помощью API Яндекс.Карт). Задача была непростая: внутри МКАД одни расценки, за МКАД — другие. Например, для сквозного маршрута через МКАД из Зеленограда до Красногорска нужно рассчитать 5 участков:

1) выезд от базы до Зеленограда,
2) Зеленоград — МКАД,
3) кусочек по МКАДу,
4) МКАД — Красногорск,
5) возврат из Красногорска на базу.

Кроме путей по Москве (внутри МКАД) есть маршруты сквозные, из Москвы в Московскую область (или наоборот), а также только по МО:

Процесс расчёта: взгляд со стороны клиента

Сначала выбирается нужный тип автомобиля:

На чём поедем?

Затем количество грузчиков:

Сколько нужно помощников?

Забегая вперёд, скажу, что машину и количество грузчиков можно будет поменять в самом конце:

При этом сумма поменяется в реальном времени

Теперь задаются начальная и конечная точки маршрута. API Яндекс.Карт «понимает» введённые адреса практически в любой человеческой форме.

Вводим адреса начального и конечного пунктов

Можно поставить галочку «только Москва», но это чисто косметическая опция:

Маршрут пролегает внутри Москвы

Вообще указание города необязательно, если название улицы (или любого другого объекта) уникально.

Маршрут рассчитан, что дальше?

Путь построен, километры, часы и цена рассчитаны

Если нужны подробности, почему такая большая (или маленькая) цена, пожалуйста:

Из чего складывается цена

Следующим пунктом можно оформить быструю заявку:

 Имя и телефон! :)

В конце клиент видит полностью свой рассчитанный заказ и благодарность за заявку:

Заявка принята

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

Ускоренное оформление быстрой заявки :)

Процесс расчёта: технические детали

Расскажу только о ключевых моментах.

API Яндекс.Карт позволяет:

  • — разбить маршрут на отрезки (разбивка идёт на перекрёстках, пересечениях с другими объектами и т.д.);
  • — найти длину отрезка или группы отрезков (или всего маршрута);
  • — задать многоугольник (в данном случае — МКАД) и определить, находится ли заданная точка внутри него. Это позволяет засечь момент пересечения МКАД, а также определить тип маршрута (за МКАД, внутри МКАД или сквозной).

Смотрите также

Комментарии закрыты. По всем вопросам обращайтесь ко мне по почте, через Вотсап или Вконтакте, см. раздел Контакты

Следующая заметка

© 2011