Расчёт маршрута (API Яндекс.Карт)
Доделал сервис расчёта маршрутов для сайта «МК-Лидер» (с помощью API Яндекс.Карт). Задача была непростая: внутри МКАД одни расценки, за МКАД — другие. Например, для сквозного маршрута через МКАД из Зеленограда до Красногорска нужно рассчитать 5 участков:
1) выезд от базы до Зеленограда,
2) Зеленоград — МКАД,
3) кусочек по МКАДу,
4) МКАД — Красногорск,
5) возврат из Красногорска на базу.
Кроме путей по Москве (внутри МКАД) есть маршруты сквозные, из Москвы в Московскую область (или наоборот), а также только по МО:
Процесс расчёта: взгляд со стороны клиента
Сначала выбирается нужный тип автомобиля:
Затем количество грузчиков:
Забегая вперёд, скажу, что машину и количество грузчиков можно будет поменять в самом конце:
Теперь задаются начальная и конечная точки маршрута. API Яндекс.Карт «понимает» введённые адреса практически в любой человеческой форме.
Можно поставить галочку «только Москва», но это чисто косметическая опция:
Вообще указание города необязательно, если название улицы (или любого другого объекта) уникально.
Маршрут рассчитан, что дальше?
Если нужны подробности, почему такая большая (или маленькая) цена, пожалуйста:
Следующим пунктом можно оформить быструю заявку:
В конце клиент видит полностью свой рассчитанный заказ и благодарность за заявку:
Кстати, для быстрой заявки необязательно рассчитывать маршрут. Можно просто оформить эту заявку из соответствующего пункта меню:
Процесс расчёта: технические детали
Расскажу только о ключевых моментах.
API Яндекс.Карт позволяет:
- — разбить маршрут на отрезки (разбивка идёт на перекрёстках, пересечениях с другими объектами и т.д.);
- — найти длину отрезка или группы отрезков (или всего маршрута);
- — задать многоугольник (в данном случае — МКАД) и определить, находится ли заданная точка внутри него. Это позволяет засечь момент пересечения МКАД, а также определить тип маршрута (за МКАД, внутри МКАД или сквозной).
Смотрите также
Комментарии
Дальнейшие комментарии закрыты. По всем вопросам пишите или звоните мне лично, см. раздел Контакты