1

Orders remote api

Topic: Orders remote api

Добрый день!
Через API пытаюсь добавить в существующий маршрут новые точки. Для этого беру заявки уже созданного маршрута и выполняю запрос order/optimize, добавив в него новые заявки. Получаю в ответе ошибку {error: 6, error_code: 5, reason: "INPUT_SCHEDULE"} (возможно, что optimize возвращает ошибку из-за того что одна из заявок на маршруте уже выполнена?)
Не подскажите с чем связана эта ошибка?

И второй вопрос. Когда я таким же образом обновляю маршрут, optimize возвращает время посещения точек, после окончания уже существующего маршрута.
т.е. У меня есть созданный запланированный маршрут с 11.00-15.00. Я выполняю запрос order/optimize (с заявками из маршрута + новые заявки) и получаю маршрут начинающийся с 15.10.
Возможно вы сможете подсказать варианты решения и этой проблемы?

Спасибо!

2

Orders remote api

Re: Orders remote api

Добрый день.

Для добавления новой точки в маршрут необходимо использовать gis_get_route_via_waypoints

origin/destination — начало/конец, waypoints массив точек внутри, `uid` — id пользователя.
пример с двумя точками

http://hst-api.wialon.com/gis_get_route_via_waypoints?data={"origin":{"lat":50.4203300476,"lon":30.606880188},"destination":{"lat":50.449634552,"lon":30.4753875732},"waypoints":[],"flags":1}&uid=UID&sid=SID

данный запрос возвращает время и расстояние от точки до точки
Как это сделано в приложение "Logistics", при добавлении точки в маршрут берем предыдущую точку и новую, если меняем порядок точки(перетягиваем на одну точку вверх, берем координаты точки перед той которую перетянули вверх
пример с 3 точками

http://hst-api.wialon.com/gis_get_route_via_waypoints?data={"origin":{"lat":50.4185829163,"lon":30.5141830444},"destination":{"lat":50.4203300476,"lon":30.606880188},"waypoints":[{"lat":50.449634552,"lon":30.4753875732}],"flags":1}&uid=UID&sid=SID

"И второй вопрос. Когда я таким же образом обновляю маршрут, optimize возвращает время посещения точек, после окончания уже существующего маршрута. " - это сделано для того что бы гарантировать неиспользование одного и того же объекта в одно и тоже время.

Был рад помочь.
С уважением, team LABS

Команда LABS
3

Orders remote api

Re: Orders remote api

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

4

Orders remote api

Re: Orders remote api

Оптимизация - это просто выставление порядка прохождения точек в маршруте.
" недокументированная функция и впоследствии от нее могут отказаться." - пока такой информации нет, так что смело можно использовать, так как логистика использует данный метод.

Команда LABS
5

Orders remote api

Re: Orders remote api

Добрый день! Есть некоторые проблемы с добавление точек в маршрут, если одна из заявок на маршруте была отклонена. Кроме того после отмены заявки в маршруте, невозможно удалить маршрут. Отклоняю заявку с помощью WialonJS SDK, функция rejectOrder, предварительно записав в ej.tm текущее время в UTC.
Если создавать заявки и маршрут через Logistics, то всё работает корректно, можно и удалить маршрут и добавить новые точки.
Возможно нужно изменить какие-то ещё данные в заявке во время отклонения?