כחלק משירות נסיעות על פי דרישה לצורכי ניידות, יש כלי רכב בקרבת מקום
באמצעות השיטה SearchVehicles
.
השיטה SearchVehicles
מאפשרת למצוא רכבים זמינים בקרבת מקום
אפליקציות לנייד שמתאימות במיוחד לנסיעה או למשלוח
בקשה. ה-API SearchVehicles
מחזיר רשימה מדורגת של כלי רכב
תואמים למאפייני הנסיעה המבוקשים. הדירוג מסודר לפי
בחירה של זמן הגעה משוער, מרחק או מרחק של קו ישר מנקודת האיסוף.
מאפייני חיפוש | מאפייני הרכב |
---|---|
|
|
שימוש בשיטה SearchVehicles
כדי להשתמש בתוסף SearchVehicles
, צריך לבצע את התהליך הכללי הבא:
- יצירה של
SearchVehiclesRequest
על סמך הנסיעה שתוקצה. - קוראים ל-API
SearchVehicles
(vehicleService.searchVehicles
) עם של הבקשה שנוצרת. - מעבדים את ה-
SearchVehicleResponse
שהוחזרו מה-API.
שדות SearchVehiclesRequest
משתמשים בשדות המאפיינים הנדרשים כדי ליצור
SearchVehiclesRequest
:
שדה | תיאור |
---|---|
הורה | נדרש. חייב להיות בפורמט providers/{provider}. הספק חייב להיות מזהה הפרויקט ב-Google Cloud שחשבון השירות שמבצע את השיחה הזו משויך אליו. |
vehicle_types | נדרש. סוגי הרכבים המבוקשים: Auto, TWO_WHEELER, TAXI, TRUCK, BICYCLE או PEDESTRIAN. |
trip_types | נדרש. "בלעדיות" (נסיעה פעילה אחת לכל נהג) או משותפת (נסיעה אחת או כמה נסיעות בכל פעם לכל נהג). |
minimum_capacity | נדרש. קיבולת הרכב שנותרו לנסיעה חדשה, לנוסעים או להעברות. |
pickup_point | נדרש. מיקום האיסוף של הנסיעה בקואורדינטות של קווי אורך ורוחב. |
dropoff_point | זה שינוי אופציונלי. מיקום הנסיעה לפריקה בקואורדינטות של קו אורך וקו רוחב. השדה נדרש אם trip_types מכיל TripType.SHARED. |
pickup_radius_meters | נדרש. הרדיוס במטרים של אזור חיפוש הרכבים מנקודת האיסוף. |
order_by | נדרש. אפשר להזמין רכבים לפי אחד מהסוגים הבאים:
|
count | נדרש. המספר המקסימלי של כלי רכב שצריך להחזיר מ-1 עד 50. |
סינון | אופציונלי. שאילתת סינון שצריך להחיל כשמחפשים כלי רכב. |
אפשר לעיין במסמכי העזרה כדי לראות את הקבוצה המלאה של השדות SearchVehicleRequest.
תרחישים של SearchVehiclesRequest
בקטע הזה מוצגות דוגמאות לבניית SearchVehiclesRequest
.
לדוגמה, נניח שלקוח רוצה לאסוף אותו ממסעדה X, ויש לכם ארבעה כלי רכב:
- רכב 1: במרחק 3,500 מטר מ-RestaurantX.
- רכב 2: במרחק 100 מטרים מ-RestaurantX עם נסיעה פעילה עם איסוף וירידה במיקומים A ו-B.
- רכב 3: במרחק 200 מטר מ-RestaurantX ונשארה תחנה אחת אחרונה רחוק.
- רכב 4: במרחק 1,000 מטר מ-RestaurantX.
למטה מוצגות בקשות שונות לפי הרכב שהם מחזירים.
הפונקציה מחזירה את הרכב 4
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA
החזרת רכב 3 ו-4
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, is_back_to_back enabled
החזרת רכב 2, 3 ו-4
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, current_trips_present = ALL
שדות SearchVehiclesResponse
SearchVehiclesResponse
מורכב מרשימה של VehicleMatch
ישויות, שמדורגות
לפי המאפיין order_by שצוין ב-SearchVehiclesRequest
. כל אחד
ישות אחת (VehicleMatch
) מכילה את השדות הבאים:
שדה | תיאור |
---|---|
כלי רכב | האובייקט Vehicle , כולל המאפיינים Vehicle_id ו-Vehicle . |
vehicle_pickup_eta | זמן ההגעה המשוער של הרכב בנקודת האיסוף של הנסיעה החדשה. זהו זמן ההגעה המשוער לנהיגה. |
vehicle_pickup_distance_meter | המרחק במטרים בין הרכב לבין מיקום האיסוף של הנסיעה החדשה. |
vehicle_pickup_straight_line_distance_meter | המרחק של הקו הישר במטרים בין הרכב לבין מקום האיסוף של הנסיעה החדשה. |
vehicle_dropoff_eta | חותמת הזמן של זמן ההגעה המשוער לרכב בנקודת האיסוף של הנסיעה החדשה. הערה: זמן ההגעה המשוער הוא זמן ההגעה המשוער לנהיגה. |
vehicle_trips_waypoints | רשימה של נקודות הציון שנותרו, כולל נקודות איסוף והורדה, בנסיעות הפעילות שמוקצות כרגע לרכב. |
vehicle_match_type | סוג הנסיעה של הרכב: EXCLUSIVE, BACK_TO_BACK, CarPOOL או CARPOOL_BACK_TO_BACK. |
רשימה מלאה של השדות VehicleMatch
מופיעה כאן:
VehicleMatch message
(gRPC)VehicleMatch resource
(REST)
שימוש בשאילתות סינון
תמיכה בסינון לפי מאפייני רכבים בSearchVehicles
ובListVehicles
באמצעות שאילתת סינון.
שאילתות סינון תומכות רק בסינון לפי מאפיינים מותאמים אישית של כלי רכב,
לא ניתן להשתמש בהם בשדות אחרים. בשימוש בחיפוש שכולל שדה אחר
קריטריונים כמו minimum_capacity
או vehicle_types
, שאילתת הסינון
משמש כתנאי AND
.
לדוגמה, אם אתם מחפשים רכב עם קיבולת מינימלית של 6 וגם
סינון attributes
, לדוגמה, 'ידידותי לחיות מחמד', הפונקציה תחזיר רק את הקריטריונים
כלי רכב שהם גם ידידותיים לחיות מחמד ויכולים לשאת בהם לפחות 6 נוסעים.
מידע על התחביר של שאילתות סינון מופיע כאן: AIP-160 לקבלת דוגמאות. מידע נוסף על יצירת מאפייני רכב זמין במאמר רכב במדריך עדכון שדות רכב.
דוגמה לכלי חיפוש
בדוגמה הבאה תוכלו לראות איך משתמשים ב-API SearchVehicles
באמצעות
ספריית Java gRPC.
static final String PROJECT_ID = "project-id";
VehicleServiceBlockingStub vehicleService =
VehicleService.newBlockingStub(channel);
String parent = "providers/" + PROJECT_ID;
SearchVehiclesRequest searchVehiclesRequest = SearchVehiclesRequest.newBuilder()
.setParent(parent)
.setPickupPoint( // Grand Indonesia East Mall
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder().setLatitude(-6.195139).setLongitude(106.820826)))
.setDropoffPoint( // Balai Sidang Jkt Convention Center
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder().setLatitude(-6.213796).setLongitude(106.807195)))
.setPickupRadiusMeters(2000)
.setCount(10)
.setMinimumCapacity(2)
.addTripTypes(TripType.EXCLUSIVE)
.addVehicleTypes(VehicleType.newBuilder().setCategory(Category.AUTO).build())
.setCurrentTripsPresent(CurrentTripsPresent.ANY)
.setFilter("attributes.on_trip=\"false\"")
.setOrderBy(VehicleMatchOrder.PICKUP_POINT_ETA)
.build();
try {
SearchVehiclesResponse searchVehiclesResponse =
vehicleService.searchVehicles(searchVehiclesRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
List<VehicleMatch> vehicleMatches =
searchVehicleResponse.getMatchesList();
// Each VehicleMatch contains a Vehicle entity and information about the
// distance and ETA to the pickup point and drop-off point.