このドキュメントでは、単一の目的地へのルートを作成し、正しいフィールドを設定して、ルートを車両に割り当てて完了する方法について説明します。Fleet Engine を設定済みで、車両を作成済みであり、ドライバー アプリが機能していること、必要に応じてユーザーアプリが機能していることを前提としています。関連するガイドは次のとおりです。
旅程作成の基本
このセクションでは、Fleet Engine でルートを作成するために必要なリクエストの詳細について説明します。作成リクエストは、gRPC または REST を使用して発行します。
ルートのフィールド
Fleet Engine でルートを作成するには、次のフィールドを使用します。ルートの種類(単一目的地、複数目的地、連続、相乗り)に応じて、異なるフィールドを使用できます。省略可能なフィールドは、ルートの作成時に指定することも、ルートの更新時に後で設定することもできます。
| 名前 | 必須かどうか | 説明 |
|---|---|---|
| parent | はい | プロジェクト ID を含む文字列。この ID は、Fleet Engine の統合全体で同じサービス アカウントのロールを使用して使用する必要があります。 |
| trip_id | はい | このルートを一意に識別するために作成する文字列。ルート ID には 特定の制限があります。参照に示されているように。 |
| trip_type | はい | 作成するルートのタイプに応じて、TripType を次の値に設定します。
|
| pickup_point | はい | ルートの出発地。 |
| 中間地点 | はい | 複数目的地ルートのみ: ドライバーが乗車場所と降車の間で立ち寄る中間地点のリスト。 |
| vehicle_waypoints | はい | 相乗りルートのみ: このフィールドでは、複数のルートの経由地をインターリーブできます。
割り当てられた車両の残りのウェイポイントと、このルートの乗車地点と降車地点のウェイポイントがすべて含まれます。このフィールドは、
|
| number_of_passengers | いいえ | ルートの乗客数。 |
| dropoff_point | いいえ | ルートの目的地。 |
| vehicle_id | いいえ | ルートに割り当てられた車両の ID。 |
例: 単一目的地ルート
次の例は、グランド インドネシア イースト モールへのルートを作成する方法を示しています。このルートには 2 人の乗客がおり、排他的で、ステータスは NEW です。ルートの provider_id は、Google Cloud プロジェクト ID と同じである必要があります。この例では、プロジェクト ID が my-rideshare-co-gcp-project の Google Cloud プロジェクトを示しています。このプロジェクトには、Fleet Engine を呼び出すためのサービス アカウントも必要です。詳細については、サービス アカウントのロールをご覧ください。
static final String PROJECT_ID = "my-rideshare-co-gcp-project";
TripServiceBlockingStub tripService = TripService.newBlockingStub(channel);
// Trip initial settings.
String parent = "providers/" + PROJECT_ID;
Trip trip = Trip.newBuilder()
.setTripType(TripType.EXCLUSIVE) // Use TripType.SHARED for carpooling.
.setPickupPoint( // Grand Indonesia East Mall.
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder()
.setLatitude(-6.195139).setLongitude(106.820826)))
.setNumberOfPassengers(2)
// Provide the drop-off point if available.
.setDropoffPoint(
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder()
.setLatitude(-6.1275).setLongitude(106.6537)))
.build();
// Create trip request
CreateTripRequest createTripRequest = CreateTripRequest.newBuilder()
.setParent(parent)
.setTripId("trip-8241890") // Trip ID assigned by the provider.
.setTrip(trip) // The initial state is NEW.
.build();
// Error handling.
try {
Trip createdTrip = tripService.createTrip(createTripRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case ALREADY_EXISTS:
break;
case PERMISSION_DENIED:
break;
}
return;
}