Создайте эффективный маршрут на карте с одним или несколькими конкретными временами прибытия

Я ищу конкретную функцию из службы Map Routing API.

Проведя небольшое исследование, я обнаружил, что API Google Directions не предоставляет все функции, которые мне требуются от этого сервиса.

Кто-нибудь нашел/знает о жизнеспособном/потенциальном решении, которое я мог бы дополнительно исследовать?

Необходимые функции API

  • Чтобы иметь возможность указать время и продолжительность прибытия для отдельных путевых точек направления движения.
  • Если время прибытия не указано, путевая точка будет обрабатываться динамически для оптимизации.
  • Это позволит создать оптимизированный маршрут, но с некоторыми путевыми точками, имеющими определенное время встречи.

Пример случая

  • У пользователя есть в общей сложности 6 путевых точек в повестке дня за один день.
  • Одна встреча имеет определенное время прибытия в 13:00.
  • Все остальные встречи не являются критичными по времени и могут генерироваться динамически по наиболее эффективному и оптимизированному маршруту.

В настоящее время поддерживается

  • There is a similar feature in the Google Directions API called ARRIVAL_TIME. Which appears to be unavailable for driving directions. https://developers.google.com/maps/documentation/directions/intro#RequestParameters
    • departure_time — Specifies the desired time of departure. You can specify the time as an integer in seconds since midnight, January 1, 1970 UTC. Alternatively, you can specify a value of now, which sets the departure time to the current time (correct to the nearest second). The departure time may be specified in two cases:
      • For transit directions: You can optionally specify one of departure_time or arrival_time. If neither time is specified, the departure_time defaults to now (that is, the departure time defaults to the current time).
      • For driving directions: Клиенты Google Maps API for Work могут указать время отправления, чтобы получить продолжительность поездки с учетом текущих условий движения. Время отправления должно быть установлено в пределах нескольких минут от текущего времени.
    • arrival_time — Specifies the desired time of arrival for transit directions, in seconds since midnight, January 1, 1970 UTC. You can specify either departure_time or arrival_time, but not both. Note that arrival_time must be specified as an integer.
      • Unfortunately this feature is only available for MASS TRANSIT and not for DRIVING INSTRUCTIONS.

Другие технологии API

  • Routific — эти ребята предлагают точную реализацию API, которая нам нужна.
  • https://docs.routific.com/docs/input - The VISITS object appears to do exactly what I need.
    • The visits object is a hash of each visit and their properties, where the key is the visit ID. Each visit object has to contain a location object with the geographic coordinates. Note that the name parameter in the location object is optional.
    • Каждое посещение может иметь ограничение по временному окну, определяемое началом и концом. Временные окна необязательны; когда они не предусмотрены, это подразумевает, что подойдет любое время. Вы также можете сказать «в любое время после 9 утра», установив время начала на 9:00 и опустив параметр окончания. Продолжительность указывает, сколько минут занимает посещение. Если доставка занимает 30 минут и указано временное окно с 12:00 до 13:00, алгоритм позаботится о том, чтобы вы прибыли не позднее 12:30.

person Adan Rehtla    schedule 28.10.2015    source источник


Ответы (1)


Похоже, Google API будет поддерживать эту функцию в самом ближайшем будущем. У меня была встреча с несколькими дружелюбными людьми, которые перепродают Google API, и они сказали сидеть и ждать следующего выпуска API. Он может быть недоступен для публики, но он определенно будет доступен через платный доступ к API.

Я обновлю этот ответ дополнительной информацией по мере ее появления.

person Adan Rehtla    schedule 19.11.2015
comment
У меня была недавняя встреча с командой Google, и эта функция еще не выпущена. - person Adan Rehtla; 10.01.2017
comment
Вы должны иметь возможность добиться того же, оценив время отправления, а затем используя время в пути, чтобы рассчитать лучшее время отправления, чтобы вы достигли желаемого времени прибытия. Это займет два или три удара, но это должно быть возможно. Я предполагаю, что Google, возможно, придется сделать то же самое. - person user2952819; 04.02.2017
comment
Вы правы, в настоящее время вы можете сделать это с помощью нескольких вызовов API, потребляющих несколько затрат на конечную точку API. В идеале это должно быть сделано за один вызов с одним набором результатов. Другие службы маршрутизации предлагают это как услугу единого вызова. - person Adan Rehtla; 13.03.2017
comment
В настоящее время мы изучаем возможность использования OctaPlanner, оценивая его жизнеспособность optaplanner.org/learn/useCases. /vehicleRoutingProblem.html - person Adan Rehtla; 23.04.2019