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