במסמך הזה מוסבר איך ליצור נסיעה ליעד יחיד, להגדיר את השדות הנכונים ולהקצות אותה לרכב כדי לבצע אותה. ההנחה היא שהגדרתם את Fleet Engine, יצרתם כלי רכב, יש לכם אפליקציה עובדת לנהגים ואפליקציה עובדת לצרכנים (אופציונלי). למידע נוסף, אפשר לעיין במדריכים הבאים:
יסודות של יצירת נסיעות
בקטע הזה מתוארים פרטי הבקשה הנדרשים ליצירת נסיעה ב-Fleet Engine. שולחים בקשת יצירה באמצעות gRPC ו-REST.
שדות של נסיעות
משתמשים בשדות הבאים כדי ליצור נסיעה ב-Fleet Engine. אפשר להשתמש בשדות שונים לסוגים השונים של נסיעות: נסיעות ליעד יחיד או למספר יעדים, נסיעות רצופות או נסיעות משותפות בקבוצה. אפשר לספק את השדות האופציונליים כשיוצרים את הנסיעה, או להגדיר אותם מאוחר יותר כשמעדכנים את הנסיעה.
שם | נדרש? | תיאור |
---|---|---|
parent | כן | מחרוזת שכוללת את מזהה הפרויקט. המזהה הזה צריך להיות זהה למזהה שבו אתם משתמשים בכל השילוב של Fleet Engine, עם אותם תפקידים בחשבון השירות. |
trip_id | כן | מחרוזת שיוצרים שמזהה באופן ייחודי את הנסיעה הזו. למזהי נסיעות יש הגבלות מסוימות, כפי שמצוין במסמך העזרה. |
trip_type | כן | מגדירים את TripType לערכי הנסיעה הבאים:
|
pickup_point | כן | נקודת המוצא של הנסיעה. |
יעדים ביניים | כן | נסיעות עם כמה יעדים בלבד: רשימת היעדים הביניים שהנהג פוקד בין האיסוף להורדה. בדומה ל- |
vehicle_waypoints | כן | נסיעות בשירות 'מעבר בין רכבים' בלבד: השדה הזה תומך בשילוב של נקודות העצירה מכמה נסיעות.
הוא מכיל את כל נקודות העצירה שנותרו ברכב שהוקצה, וגם את נקודות העצירה של האיסוף וההחזרה בנסיעה הזו. אפשר להגדיר את השדה הזה על-ידי קריאה ל- |
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;
}