המסמך הזה עוסק בשדות חשובים של כלי רכב שאפשר בזמן היצירה והניהול של כלי הרכב.
|
לרשימה מלאה של שדות הרכב:
|
שדה מצב הרכב
המערכת יכולה להגדיר את מצב הרכב כOFFLINE
או כONLINE
. לדוגמה,
ייתכן שמצב הרכב יוגדר ל-ONLINE
בכל יום בשעה 9:00 ו-OFFLINE
בכל יום
בשעה 17:00.
מצב אופליין | מצב אונליין |
---|---|
צריך להשתמש בOFFLINE כדי לציין שרכב מסוים לא מקבל תמיכה
נסיעות חדשות. חשוב לשים לב שהרכב עדיין יכול להשלים נסיעות שהוקצו בזמן
במצב הזה. |
|
שדה מאפייני הרכב
יש להשתמש בשדה attributes
של הרכב כדי ליצור קריטריונים מותאמים אישית שמאפשרים להפעיל
לצרכנים או למפעילי צי רכבים כדי למצוא כלי רכב בצי שלך
מגוון קריטריונים לחיפוש. הפעולה הזו משפרת את היכולות של האפליקציות
לספק התאמות טובות יותר למכירת רכב בהשוואה למה שהייתם מקבלים אם אתם משתמשים בקריטריונים של חיפוש
על סמך שדות אחרים בכלי רכב בלבד. בכל רכב אפשר להזין עד 100
ולכל אחד מהם צריך להיות מפתח ייחודי. הערכים יכולים להיות מחרוזות,
בוליאני או מספרים.
לדוגמה, אפשר להצהיר על מאפיין מותאם אישית שנקרא class כדי
ליצור הבחנה בין כלי רכב שיתופיים בין הרמות השונות. צריך להשתמש ברכיב
ערכי המחרוזת הבאים כדי לייצג רמות של סיווג רכב: ECONOMY
,
STANDARD
ו-LUXURY
.
עם זאת, הערכים של המאפיינים המותאמים אישית לא חייבים להיות ייחודיים. ייתכן ש להשתמש בקריטריונים כמו ידידותי לחיות מחמד, ללא עישון ויכולת להימשך זמן רב יותר. נסיעות. כל אחד מהמאפיינים האלה יכול להיות מאפיין מותאם אישית נפרד שמוגדר בו ערך בוליאני ערכים. אפשר להקצות לרכב מסוים את כל שלושת המאפיינים המותאמים אישית האלה יחד עם המאפיין המותאם אישית class עם ערך המחרוזת המתאים.
שימוש במאפיינים בצורה כזו יכול לספק מגוון רחב של תכונות שימושיות מציאת רכבים לנסיעות עם צרכים ספציפיים. לקבלת הוראות כדי להשתמש במאפיינים מותאמים אישית בתור מסנני שאילתות, ראו חיפוש רכבים.
עדכון מאפייני הרכב
אפשר לעדכן את מאפייני הרכב באמצעות UpdateVehicle
או
UpdateVehicleAttributes
. לכל מפתח attributes
יכול להיות רק ערך אחד לכל
רכב. יש לך הצהרה על מאפייני רכב מותאמים אישית באמצעות המאפיין attributes
במסכת השדות, ואז לספק ערכים לפי השיטה שלמטה.
UpdateVehicle |
UpdateVehicleAttributes |
|
---|---|---|
ה-API הזה לא מאפשר לעדכן רק מאפיין אחד. בזמן השימוש
בשיטה הזו, כל שימוש ב-attributes
במסכת השדות - תוצאות בכל הקבוצה
מאפייני הרכב שצוינו מחדש בהצהרה לגבי הרכב. התוצאה של
להחליף כל מאפיין קיים שלא נכלל במפורש
). אם אתם משתמשים בשיטה הזו כדי להצהיר על מאפיין מותאם אישית חדש,
צריך גם להצהיר מחדש על כל מאפיין מותאם אישית שרוצים שהרכב
הפחתה. אם לא כוללים את attributes במסכת השדות,
השיטה הזו משאירה מאפיינים מותאמים אישית קיימים כפי שהוגדר קודם לכן
לרכב. אם משתמשים ב-attributes במסכת השדות,
אבל ללא הגדרה של ערכים, הפעולה הזו זהה להסרת כל
מהרכב.
|
השיטה הזו מקבלת רשימה ספציפית של מאפיינים כדי הבקשה מתעדכנת או מוסיפה רק את המאפיינים שצוינו במסכת השדות. מאפיינים קיימים שלא צוינו יישארו ללא שינוי. |
דוגמה לעדכון שדות הרכב
בקטע הזה מוסבר איך לעדכן את שדות הרכב באמצעות UpdateVehicleRequest
,
שכולל update_mask
, שמציין אילו שדות צריך לעדכן. לצפייה
פרטים נוספים על פרוטוקולים של מאגרי נתונים זמניים בנושא מסכות שדה.
לעדכונים בשדות שאינם last_location
נדרש Fleet Engine על פי דרישה (Fleet Engine)
הרשאות אדמין.
דוגמה: הפעלה של סוג הנסיעה החדש ומאפיין מותאם אישית
הדוגמה הזו מאפשרת נסיעות של back_to_back
ברכב וגם מציינת
המאפיין החדש: class
. כמו שצוין קודם במאמר עדכון מאפייני רכב,
כדי לעדכן את השדה attributes
בגישה הזו, צריך לציין את כל
של המאפיינים המותאמים אישית שרוצים לשמור. לכן בדוגמה מוצג הערך cash_only
נכתב כדי למנוע ממנו להחליף אותו במהלך פעולת עדכון
שמציין את השדה attributes
.
כדי לעדכן רק את הערך של צמד מאפיין אחד של מפתח/ערך, משתמשים בפונקציה
אמצעי תשלום UpdateVehicleAttributes
ולא כוללים את השדה attribute
במסכת השדות של הבקשה UpdateVehicle
.
אפשר לעיין בחומר העזר בנושא providers.vehicles.update
בשביל gRPC ו-REST.
gRPC
static final String PROJECT_ID = "project-id";
static final String VEHICLE_ID = "vid-8241890";
VehicleServiceBlockingStub vehicleService = VehicleService.newBlockingStub(channel);
String vehicleName = "providers/" + PROJECT_ID + "/vehicles/" + VEHICLE_ID;
Vehicle updatedVehicle = Vehicle.newBuilder()
.setVehicleState(VehicleState.ONLINE)
.addAllAttributes(ImmutableList.of(
VehicleAttribute.newBuilder().setKey("class").setValue("ECONOMY").build(),
VehicleAttribute.newBuilder().setKey("cash_only").setValue("false").build()))
.setBackToBackEnabled(true)
.build();
UpdateVehicleRequest updateVehicleRequest = UpdateVehicleRequest.newBuilder()
.setName(vehicleName)
.setVehicle(updatedVehicle)
.setUpdateMask(FieldMask.newBuilder()
.addPaths("vehicle_state")
.addPaths("attributes")
.addPaths("back_to_back_enabled"))
.build();
try {
Vehicle updatedVehicle =
vehicleService.updateVehicle(updateVehicleRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
// Most implementations will call CreateVehicle in this case
break;
case PERMISSION_DENIED:
break;
}
return;
}
// If no Exception, Vehicle updated successfully.
REST
curl -X PUT \
"https://fleetengine.googleapis.com/v1/providers/project-id/vehicles/vid-8241890?updateMask=vehicle_state,attributes,back_to_back_enabled" \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
--data-binary @- << EOM
{
"vehicleState": "ONLINE",
"attributes": [
{"key": "class", "value": "LUXURY"},
{"key": "cash_only", "value": "false"}
],
"backToBackEnabled": true
}
EOM