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

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

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

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

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

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

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

שדות של נסיעות
שם נדרש? תיאור
parent כן מחרוזת שכוללת את מזהה הפרויקט. המזהה הזה צריך להיות זהה למזהה שבו השתמשתם בכל השילוב שלכם עם Fleet Engine, עם אותן הרשאות של חשבון השירות.
trip_id כן מחרוזת שאתם יוצרים ומזהה באופן ייחודי את הנסיעה הזו. יש הגבלות מסוימות על מזהי נסיעות, כפי שמצוין בהפניה.
trip_type כן מגדירים את הערכים הבאים של TripType לסוג הנסיעה שאתם יוצרים:
  • יעד יחיד: מגדירים את הערך 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 לא המזהה של הרכב שהוקצה לנסיעה.

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

בדוגמה הבאה מוסבר איך ליצור נסיעה לקניון Grand Indonesia East. הנסיעה היא בלעדית וכוללת שני נוסעים, והסטטוס שלה הוא 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;
}

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