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

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

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

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

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

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

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

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

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