Поездки по запросу,Поездки по запросу

В этом документе описывается услуга поездок по требованию в Fleet Engine. Предполагается, что вы прочитали «Что такое Fleet Engine?». и знаете о конкретных возможностях обслуживания Fleet Engine, которые вам нужны.

Читая эту документацию, имейте в виду следующее:

  • Вы назначаете поездки транспортным средствам, чтобы смоделировать реальную связь между поездкой и водителем, который ее завершает . Прочтите «Введение в транспортные средства» , чтобы лучше понять, как транспортные средства работают в Fleet Engine.
  • В этом документе также описаны некоторые элементы транспортного средства, применимые только к поездкам по требованию.
  • Fleet Engine для поездок по требованию использует два ресурса : Trip и Vehicle . Fleet Engine предоставляет как службу gRPC, так и интерфейсы REST:
    • TripService : gRPC и REST.
    • VehicleService : gRPC и REST.
    • Для простоты в этом руководстве используются примеры gRPC.

Что такое поездка по требованию?

В Fleet Engine поездка представляет собой поездку по требованию, которая может достичь различных транспортных целей. Например:

  • Люди : Перевезите одного или нескольких человек от места посадки до места высадки.
  • Еда и товары : возьмите один или несколько заказов на еду в определенном месте и доставьте эти заказы одному или нескольким получателям в их местах.

Элементы поездки

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

Модель данных для поездок

Поскольку ваша серверная часть назначает поездки транспортным средствам, она также должна знать о других поездках, запланированных для этого транспортного средства. По этой причине на следующих диаграммах показана модель данных ресурса Trip » рядом со схемой связанного с ним ресурса Vehicle . Вы можете просмотреть обе диаграммы, чтобы изучить взаимосвязи между двумя ресурсами, учитывая следующее:

  • Поездки присваиваются транспортному средству по идентификатору .
  • Ассоциация «путешествующее транспортное средство» — «многие к одному» . То есть данная поездка может быть единственной запланированной поездкой для транспортного средства или одной из многих поездок транспортного средства.
  • Объекты поездки содержат два списка путевых точек поездки : один для самой поездки, а другой для назначенного транспортного средства. Более подробно это описано в этом документе.
  • Транспортное средство по запросу также имеет список путевых точек поездки , более подробно описанный в этом документе.

Модель данных о поездке

Модель данных автомобиля

Типы поездок

Когда ваша служба создает поездку, она может установить в поле tripType одно из следующих значений: EXCLUSIVE или SHARED .

Эксклюзивные поездки

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

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

Совместные поездки

Совместная поездка – это поездка, поездка которой может пересекаться с другими бронированиями поездок. Для этих типов поездок ваша система может назначить их одновременное выполнение с чередованием пунктов назначения. Например, высадка для одной поездки может произойти после получения для другой поездки. Кроме того, в совместных поездках не могут использоваться промежуточные путевые точки.

Обычно вы используете совместную поездку для одного из сценариев совместного объединения, показанных в разделе «Сценарии поездки» .

Путевые точки поездки

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

  • Идентификатор поездки
  • WaypointType : посадка, промежуточная или высадка.
  • Информация о пути и расстоянии между предыдущей путевой точкой поездки и текущей.
  • Условия дорожного движения на пути к маршрутной точке поездки
  • Время в пути и расчетное время прибытия до путевой точки

Смотрите ссылки:

Типы путевых точек поездки

Путевая точка поездки определяется относительно общего жизненного цикла поездки транспортного средства:

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

Списки путевых точек поездки

Сущность Trip включает в себя два списка путевых точек, каждый из которых представляет собой повторяющееся поле типа TripWaypoint . Один список описывает поля, необходимые для самой поездки, а другой — для описания всех путевых точек, оставшихся для транспортного средства, связанного с поездкой. Это позволяет получить полную картину обо всех элементах путешествия: самой поездки и всего пути автомобиля.

  • Оставшиеся путевые точки для транспортного средства — поле vehicle_waypoints . Он содержит все оставшиеся путевые точки для всех поездок, назначенных транспортному средству.
  • Оставшиеся путевые точки для поездки — поле с названием remaining_waypoints . Он содержит путевые точки, которые транспортное средство должно пройти последовательно до конечной точки высадки. См. сценарии в разделе «Сценарии поездок» .
    • Для поездки в один пункт назначения, назначенной транспортному средству, в расписании которого нет других поездок, это будет включать только место посадки и высадки, при условии, что транспортное средство не покинуло точку посадки.
    • Для любого другого сценария поездки, в котором транспортное средство также запланировано для других поездок, оставшиеся путевые точки для любой поездки по его маршруту будут включать все путевые точки из других поездок, которые транспортное средство должно пройти, прежде чем достигнет точки высадки для этой поездки. Например, при последовательном рейсе, когда транспортное средство находится на пути к месту высадки для рейса A, оставшиеся путевые точки для рейса B будут включать в себя точку высадки для рейса A. Fleet Engine вычисляет эту информацию с помощью Поле vehicle_waypoints .

См. ссылку на сущность Trip : gRPC или REST .

Сценарии поездки

На следующих диаграммах показаны различные поддерживаемые сценарии отключения. В этих сценариях только поездка общего пула имеет тип SHARED ; все остальные EXCLUSIVE . На диаграммах также отображается статус поездки и оставшиеся путевые точки транспортного средства, выполняющего поездку. Принципы описаны далее в этом руководстве.

Поездка в один конец

Поездка в один пункт назначения — это EXCLUSIVE поездка с одним местом посадки и одним местом высадки. Например, водитель забирает пассажира из одного места и перевозит его в другое; или водитель забирает заказ на доставку еды из ресторана и передает его клиенту.

Поездки по нескольким направлениям

Поездка с несколькими пунктами назначения — это EXCLUSIVE поездка, которая включает один или несколько промежуточных пунктов назначения между местами посадки и высадки. Например, три клиента каршеринга заказывают поездку вместе с телефона одного человека, но у каждого из них разные пункты назначения.

Поездки туда и обратно

Комбинированные поездки — это EXCLUSIVE поездки, состоящие из серии независимых поездок, которые происходят одна за другой. Каждая поездка в цепочке может быть однонаправленной или многонаправленной. В этом сценарии водитель обязуется забрать другого клиента до завершения текущей поездки.

Эти поездки могут быть назначены только транспортным средствам, которые допускают поочередное планирование. См. ссылку Vehicle REST , gRPC .

Совместные поездки

Групповая поездка отличается от других типов поездок. Во-первых, это должна быть SHARED поездка, а не EXCLUSIVE . Здесь транспортное средство выполняет поездки одновременно, а не последовательно, как в случае эксклюзивных поездок. Хотя совместная объединенная поездка разделяет маршрут с другими поездками, информация о местах посадки и высадки не передается между поездками. Вместо этого каждая поездка представляет собой эксклюзивное бронирование, поэтому конечный пользователь, забронировавший одну поездку, не может видеть информацию о посадке или пункте назначения для любой другой поездки, кроме своей собственной. Например:

  • Служба трансфера из аэропорта забирает различных клиентов по месту их проживания и доставляет их в разные терминалы аэропорта по маршруту. Человек 2 может использовать ваше пользовательское приложение для отслеживания хода поездки, но его приложение показывает только часть поездки, а не то, где забрали человека 1 или где его высадят, даже если некоторые его поездки перекрывать.
  • Водитель-доставщик еды забирает три заказа еды из одного ресторана и доставляет их в разные места проживания клиентов. Используя ваше потребительское приложение, Человек 3 может видеть, где и когда была получена его еда, и видеть маршрут водителя, но не видеть места сдачи еды для людей 1 и 2.

Статус поездки и ее жизненный цикл

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

Путешествие обычно проходит через различные состояния, от создания до завершения. Грубо говоря, поездка может быть активной или неактивной в зависимости от ее статуса. Статус поездки влияет на различные сценарии использования Fleet Engine, а также на возможность определять прогресс транспортного средства в путешествии. В оставшейся части документа обсуждаются эти сценарии.

В следующей таблице перечислены статусы отключений по активным и неактивным типам.

Активные статусы поездок Неактивные статусы поездок
NEW
UNKNOWN_TRIP_STATUS
ENROUTE_TO_PICKUP
ARRIVED_AT_PICKUP
ENROUTE_TO_INTERMEDIATE_DESTINATION
ARRIVED_AT_INTERMEDIATE_DESTINATION
ENROUTE_TO_DROPOFF
COMPLETE
CANCELED

Статус поездки и оставшиеся путевые точки автомобиля

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

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

Во время поездки Fleet Engine удаляет предыдущую точку маршрута поездки из списка оставшихся точек маршрута автомобиля только тогда, когда автомобиль сообщает, что он находится на пути к следующему пункту назначения или завершен. То есть любое из следующего:

  • ENROUTE_TO_INTERMEDIATE_DESTINATION
  • ENROUTE_TO_DROPOFF
  • ЗАВЕРШЕННЫЙ

Когда статус поездки меняется на COMPLETED , Fleet Engine удаляет последнюю путевую точку поездки из оставшегося списка путевых точек транспортного средства.

Напротив, изменения статуса, указывающие на прибытие в путевую точку, обычно не влияют на список оставшихся путевых точек для транспортного средства:

  • ARRIVED_AT_PICKUP
  • ARRIVED_AT_INTERMEDIATE_DESTINATION
  • ARRIVED_AT_DROPOFF

Чтобы проиллюстрировать это примером поездки по требованию: предположим, что водитель забирает клиента из дома, доставляет его к месту, где он ждет, пока клиент выполнит задание, а затем отвозит клиента обратно к себе домой. При первоначальном создании поездка имеет три путевых точки: PICKUP , INTERMEDIATE и DROPOFF . В следующей таблице показаны результаты запроса оставшихся путевых точек на различных этапах пути:

Статус поездки Оставшиеся путевые точки
ARRIVED_AT_PICKUP PICKUP
INTERMEDIATE
DROPOFF
ENROUTE_TO_INTERMEDIATE_DESTINATION PICKUP
INTERMEDIATE
DROPOFF
ARRIVED_AT_INTERMEDIATE_DESTINATION PICKUP
INTERMEDIATE
DROPOFF
ENROUTE_TO_DROPOFF PICKUP
INTERMEDIATE
DROPOFF
ARRIVED_AT_DROPOFF PICKUP
INTERMEDIATE
DROPOFF
COMPLETE PICKUP
INTERMEDIATE
DROPOFF

Требования к статусу для переназначенных или отмененных поездок

Прежде чем вы сможете выполнить любое из следующих действий, вам необходимо установить статус поездки: NEW или CANCELED .

  • При изменении назначения автомобиля на поездку . Например, если водитель отклоняет назначение транспортного средства для поездки и его необходимо переназначить на другое транспортное средство.
  • При оформлении назначения автомобиля на поездку . Например, если водитель отменяет поездку по маршруту, и вы хотите отменить назначение транспортного средства, статус должен быть либо NEW , либо CANCELED .

Результаты поиска по статусу поездки

Когда вы используете службу SearchTrips для конкретного транспортного средства, она возвращает список активных поездок в SearchTripsResponse . Активные поездки также отображаются в поле active_trips объекта Vehicle . Подробности смотрите в справочнике SearchTripsResponse : gRPC или REST .

Таким образом, все поездки с активным статусом отображаются в поле active_trips , а завершенные или отмененные — нет.

Что дальше