連続したルートを作成する

このドキュメントでは、連続したルートを作成し、正しいルートを 車両に割り当てることができます。フリートがセットアップ済みであることを前提としています。 自動車を作成し、運転手用アプリを使用できるようにして、 コンシューマアプリでも実行できますまた、Google Cloud で提供されている いくつか紹介します。以下の関連ガイドをご覧ください。 必要があります。

旅行の作成の基本

このセクションでは、 Fleet EnginegRPC と REST のいずれかを使用して作成リクエストを発行します。

  • CreateTrip() メソッド: gRPC または REST
  • CreateTripRequest メッセージ: gRPC のみ
で確認できます。

ルートのフィールド

Fleet Engine でルートを作成するには、次のフィールドを使用します。別の方法を使用して、 フィールドを使用して、1 つの目的地、複数の目的地、 連続してプールを行ったり、プール旅行をシェアしたりできます。マイページ ルートの作成時にオプション フィールドを指定することも、自分で ルートを更新したときに 自動的に設定されます

ルートのフィールド
名前 必須 説明
はい プロジェクト ID を含む文字列。この ID は、使用されている ID と同じである必要があります Fleet Engine インテグレーション全体にわたり、同じサービス アカウントで できます。
trip_id はい このルートを一意に識別する文字列。ルート ID の属性 特定の制限が適用されます。
trip_type はい 作成するルートのタイプに応じて、TripType に次の値を設定します。 <ph type="x-smartling-placeholder">
    </ph>
  • 単一のデスティネーション: SHARED または EXCLUSIVE に設定します。
  • 複数の宛先: EXCLUSIVE に設定します。
  • Back-to-back: EXCLUSIVE に設定します。
  • 共有プール: SHARED に設定します。
pickup_point はい ルートの出発地。
中間デスティネーション はい

複数の目的地を含むルートのみ: ドライバーがルート間を通る中間の目的地のリスト ピックアップとドロップオフですdropoff_point と同様に、このフィールドは 後で UpdateTrip を呼び出して設定することもできますが、マルチデスティネーション ルートには中間の目的地が含まれます。

vehicle_waypoints はい

共有プールのルートのみ: このフィールドでは、複数のルートのウェイポイントをインターリーブできます。 これには、割り当てられた車両の残りのウェイポイントもすべて含まれます。 このルートの乗り降り地点として設定しますこのフィールドは CreateTrip または UpdateTrip を呼び出します。また、 車両のウェイポイントを更新するには、waypoints フィールド UpdateVehicle への呼び出し。 GetTrip の呼び出しでは、サービスはこの情報を返しません。 理由があります。

number_of_passengers いいえ 旅行の乗客数。
dropoff_point いいえ ルートの目的地。
vehicle_id いいえ ルートに割り当てられている車両の ID。

例: 連続したルートを作成する

以下は、連続したルートを作成し、それを あります。ルートの作成は、単一の目的地の場合と同じです 移動します後で別のルートを作成して車両に割り当てます すでに有効なルートがあります

// A vehicle with ID 'my-vehicle' is already created and it is assigned to a trip with ID 'current-trip'.

static final String PROJECT_ID = "my-rideshare-co-gcp-project";
static final String VEHICLE_ID =" my-vehicle";
static final String TRIP_ID = "back-to-back-trip");

TripServiceBlockingStub tripService = TripService.newBlockingStub(channel);

String parent = "providers/" + PROJECT_ID;

Trip trip = Trip.newBuilder()
    .setTripType(TripType.EXCLUSIVE)
    .setPickupPoint(
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder()
                .setLatitude(-6.195139).setLongitude(106.820826)))
    .setDropoffPoint(
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder()
                .setLatitude(-6.1275).setLongitude(106.6537)))
    .setVehicleId(VEHICLE_ID)
    .build();

// Create trip request
CreateTripRequest createTripRequest = CreateTripRequest.newBuilder()
    .setParent(parent)
    .setTripId(TRIP_ID)
    .setTrip(trip)
    .build();

// Error handling.
try {
  // Fleet Engine automatically assigns a 'waypoints' list to the trip containing
  // the vehicle's current trip waypoints.
  Trip createdTrip =
      tripService.createTrip(createTripRequest);
} catch (StatusRuntimeException e) {
  Status s = e.getStatus();
  switch (s.getCode()) {
    case ALREADY_EXISTS:
      break;
    case PERMISSION_DENIED:
      break;
  }
  return;
}

連続したルートを更新する

連続したルートに車両を割り当てる場合は、ルートを 割り当てられている場合でも同じです。

Fleet Engine で作成したルートを車両に割り当てるには、 Fleet Engine: ルートの到着予定時刻を計算して追跡します。この設定は ルートの更新時にトリガーされます。

ルートを車両に割り当てると、Fleet Engine は自動的に 車両のウェイポイントへの連続したルートに関連付けられたウェイポイント 表示されます。ルートの remainingWaypoints フィールドには、 以前に訪れたことがある他のルートのウェイポイントを含む 出発点になります

たとえば、ルート A という 2 つのルートがあるとします。 「ルート B」が表示されます。顧客が迎えに来た ルート A で、降車場所に向かって 別の消費者を乗車するリクエストを受信し、 次のルートはルート Bです

  • getVehicle() を呼び出すと remainingWaypoints が返される 次を含む:
    持ち込みB 受け取りB 離脱
  • getTrip() または onTripRemainingWaypointsUpdated コールバック: ルート AremainingWaypoints を返します 次を含む:
    持ち込み
  • getTrip() または onTripRemainingWaypointsUpdated コールバック: 「ルート B」は「remainingWaypoints」を返します 次を含む:
    持ち込みB ピックアップ → および B ドロップオフです。

次のステップ