יצירת נסיעה עם יעד יחיד

במסמך הזה מוסבר איך ליצור נסיעה ליעד יחיד, להגדיר את השדות הנכונים ולהקצות אותה לרכב כדי לבצע אותה. ההנחה היא שהגדרתם מנוע Fleet ושיצרתם כלי רכב, שיש לכם אפליקציית נהיגה פעילה, ואופציונלי גם אפליקציה לצרכן. לשם כך, קראו את המדריכים הקשורים הבאים:

מידע בסיסי על יצירת נסיעה

בקטע הזה מתוארים פרטי הבקשה הנדרשים ליצירת נסיעה ב-Fleet Engine. אתם יוצרים בקשת יצירה באמצעות gRPC ו-REST.

  • שיטת CreateTrip(): gRPC או REST
  • הודעה אחת (CreateTripRequest): ב-gRPC בלבד

שדות של נסיעות

צריך להשתמש בשדות הבאים כדי ליצור נסיעה ב-Fleet Engine. אפשר להשתמש בשדות שונים לסוגי הנסיעות השונים: נסיעות עם יעד אחד או עם כמה יעדים, נסיעות הלוך ושוב ונסיעות משותפות. אפשר למלא את השדות האופציונליים כשיוצרים את הנסיעה, או להגדיר אותם מאוחר יותר כשמעדכנים את הנסיעה.

שדות של נסיעות
שם נדרש? תיאור
הורה כן מחרוזת שכוללת את מזהה הפרויקט. המזהה הזה צריך להיות זהה למזהה שנמצא בשימוש בכל השילוב של Fleet Engine, עם אותם התפקידים בחשבון השירות.
trip_id כן מחרוזת שיוצרים שמזהה באופן ייחודי את הנסיעה הזו. על מזהי הנסיעות יש הגבלות מסוימות, כפי שמצוין בחומר העזר.
trip_type כן מגדירים את TripType לערכים הבאים לסוג הנסיעה שיוצרים:
  • יעד יחיד: צריך להגדיר את הערך SHARED או EXCLUSIVE.
  • ריבוי יעדים: מגדירים את הערך EXCLUSIVE.
  • חזרה אחורה: מוגדר ל-EXCLUSIVE.
  • מאגר משותף: מוגדר לערך SHARED.
pickup_point כן נקודת המוצא של הנסיעה.
יעדי ביניים כן

נסיעות עם כמה יעדים בלבד: רשימת היעדים הביניים שהנהג פוקד בין האיסוף להורדה. בדומה ל-dropoff_point, אפשר להגדיר את השדה הזה גם מאוחר יותר באמצעות קריאה ל-UpdateTrip, אבל נסיעה עם כמה יעדים מכילה מעצם הגדרתה יעדים ביניים.

vehicle_waypoints כן

נסיעות במאגר משותף בלבד: השדה הזה תומך בשילוב של ציוני הדרך מכמה נסיעות. הוא מכיל את כל נקודות העצירה שנותרו ברכב שהוקצה, וגם את נקודות העצירה של האיסוף וההחזרה בנסיעה הזו. כדי להגדיר את השדה הזה, אפשר לשלוח קריאה ל-CreateTrip או ל-UpdateTrip. אפשר גם לעדכן את נקודות הדרך של הרכב דרך השדה waypoints באמצעות קריאה ל-UpdateVehicle. השירות לא מחזיר את המידע הזה בקריאות GetTrip מטעמי פרטיות.

number_of_passengers לא מספר הנוסעים בנסיעה.
dropoff_point לא יעד הנסיעה.
vehicle_id לא המזהה של הרכב שהוקצה לנסיעה.

דוגמה: טיול ביעד אחד

הדוגמה הבאה ממחישה איך יוצרים נסיעה אל Grand Indonesia East Mall. הנסיעה כוללת שני נוסעים, היא בלעדית והסטטוס שלה הוא NEW. השדה provider_id של הנסיעה חייב להיות זהה למזהה הפרויקט ב-Google Cloud. בדוגמאות מוצג פרויקט ב-Google Cloud שמזהה הפרויקט שלו הוא my-rideshare-co-gcp-project. כדי לקרוא ל-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;
}

המאמרים הבאים