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