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