כדי ליצור רכב ב-Fleet Engine לנסיעות על פי דרישה, משתמשים בנקודת הקצה CreateVehicle עם CreateVehicleRequest. כדי להשתמש בנקודת הקצה הזו, צריך חשבון עם התפקיד אדמין של Fleet Engine על פי דרישה.
שדות של רכבים לנסיעות על פי דרישה
כשיוצרים כלי רכב לנסיעות על פי דרישה, צריך להגדיר שדות חובה. חשוב גם להכיר את ההשפעה של שדות מסוימים של כלי רכב על פונקציונליות אחרת ב-Fleet Engine. פרטים נוספים זמינים במאמר בנושא עדכון שדות של רכב.
שדות חובה לנסיעות על פי דרישה
-
vehicle_state: ברירת המחדל היא unknown, אבל צריך להגדיר את הערך ONLINE או OFFLINE. מידע על הגדרת השדה של מצב הרכב מופיע במאמר עדכון שדות של רכב. -
supported_trip_types: ברירת המחדל היא "לא ידוע", אבל צריך להגדיר את הערך SHARED, EXCLUSIVE או שניהם. פרטים נוספים זמינים בקטע סוגי נסיעות במדריך נסיעות על פי דרישה. -
maximum_capacity: מספר הנוסעים שהרכב יכול להכיל, לא כולל הנהג (בהגדרה). -
vehicle_type: הערכים הםAUTO,TAXI,TRUCK,TWO_WHEELER,BICYCLEאוPEDESTRIAN. אפשר להשתמש בו כדי לסנן כלי רכב בחיפושים של כלי רכב. המידע הזה משפיע גם על חישובי המסלול וזמן ההגעה המשוער. Fleet Engine מספק מסלולים וחישובי נסיעה שתואמים לאמצעי התחבורה, על סמך הקבוצות הבאות של סוגי כלי הרכב:-
AUTO,TAXIאוTRUCK: לדוגמה, כבישים מהירים. -
TWO_WHEELER: לדוגמה, לא יוחזרו מסלולים שאסור לנסוע בהם ברכב דו-גלגלי. BICYCLE: לדוגמה, שבילי אופניים.-
PEDESTRIAN: לדוגמה, גשרים ומעברים להולכי רגל בלבד.
-
שדות אחרים
למידע על שדות אחרים שאפשר להגדיר כשיוצרים רכב, אפשר לעיין במאמר עדכון שדות של רכב.
דוגמה ליצירת רכב
כדי ליצור רכב, אתם יכולים להשתמש ב-ספריית Java gRPC או ב-REST. לרשימה המלאה של השפות הנתמכות, ראו ספריות לקוח לשירותי נסיעות על פי דרישה.
הערך שמוחזר מהשיטה CreateVehicle הוא הישות Vehicle שנוצרה.
Java
static final String PROJECT_ID = "project-id";
VehicleServiceBlockingStub vehicleService =
VehicleService.newBlockingStub(channel);
String parent = "providers/" + PROJECT_ID;
Vehicle vehicle = Vehicle.newBuilder()
.setVehicleState(VehicleState.OFFLINE) // Initial state
.addSupportedTripTypes(TripType.EXCLUSIVE)
.setMaximumCapacity(4)
.setVehicleType(VehicleType.newBuilder().setCategory(VehicleType.Category.AUTO))
.addAttributes(VehicleAttribute.newBuilder()
.setKey("on_trip").setValue("false")) // Opaque to the Fleet Engine
// Add .setBackToBackEnabled(true) to make this vehicle eligible for trip
// matching while even if it is on a trip. By default this is disabled.
.build();
CreateVehicleRequest createVehicleRequest =
CreateVehicleRequest.newBuilder() // no need for the header
.setParent(parent)
.setVehicleId("vid-8241890") // Vehicle ID assigned by Rideshare or Delivery Provider
.setVehicle(vehicle) // Initial state
.build();
// In this case, the Vehicle is being created in the OFFLINE state and
// no initial position is being provided. When the Driver App checks
// in with the Rideshare or Delivery Provider, the state can be set to ONLINE and
// the Driver App will update the Vehicle Location.
try {
Vehicle createdVehicle =
vehicleService.createVehicle(createVehicleRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case ALREADY_EXISTS:
break;
case PERMISSION_DENIED:
break;
}
return;
}
// If no Exception, Vehicle created successfully.
REST
curl -X POST \
"https://fleetengine.googleapis.com/v1/providers/project-id/vehicles?vehicleId=vid-8241890" \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
--data-binary @- << EOM
{
"vehicleState": "OFFLINE",
"supportedTripTypes": ["EXCLUSIVE"],
"maximumCapacity": 4,
"vehicleType": {"category": "AUTO"},
"attributes": [{"key": "on_trip", "value": "false"}]
}
EOMאפשר לעיין בחומר העזר בנושא providers.vehicles.create.