כדי ליצור רכב ב-Fleet Engine לנסיעות על פי דרישה, משתמשים בנקודת הקצה CreateVehicle
עם CreateVehicleRequest
. כדי להשתמש בנקודת הקצה הזו, צריך חשבון עם התפקיד אדמין של Fleet Engine On-demand.
שדות לרכבים לנסיעות לפי דרישה
כשיוצרים רכבים לנסיעות על פי דרישה, צריך להגדיר שדות חובה. כדאי גם להכיר את ההשפעה של שדות מסוימים של כלי רכב על פונקציות אחרות ב-Fleet Engine. לפרטים נוספים, אפשר לעיין במאמר בנושא עדכון שדות של רכב.
שדות חובה לנסיעות על פי דרישה
-
vehicle_state
: ברירת המחדל היא unknown, אבל צריך להגדיר ONLINE או OFFLINE. מידע על הגדרת השדה של מצב הרכב מופיע במאמר עדכון שדות של רכב. -
supported_trip_types
: ברירת המחדל היא unknown, אבל צריך להגדיר את הערך ל-SHARED, EXCLUSIVE או לשניהם. פרטים נוספים זמינים במדריך נסיעות לפי דרישה בקטע סוגי נסיעות. -
maximum_capacity
: מספר הנוסעים שהרכב יכול להסיע, לא כולל הנהג (בהגדרה). -
vehicle_type
: הערכים האפשריים הםAUTO
,TAXI
,TRUCK
,TWO_WHEELER
,BICYCLE
אוPEDESTRIAN
. אפשר להשתמש בו כדי לסנן כלי רכב בחיפושים של כלי רכב. ההגדרה הזו משפיעה גם על החישובים של זמן ההגעה המשוער ושל המסלול. Fleet Engine מספק מסלולים וחישובי נסיעה שמתאימים לאמצעי התחבורה על סמך קבוצות סוגי הרכבים הבאות:-
AUTO
,TAXI
אוTRUCK
: לדוגמה, כבישים מהירים. -
TWO_WHEELER
: לדוגמה, לא יוחזרו מסלולים שבהם אסור לנסוע על כלי רכב דו-גלגלי. -
BICYCLE
: לדוגמה, שבילי אופניים. -
PEDESTRIAN
: לדוגמה, גשרים ומעברים להולכי רגל בלבד.
-
שדות אחרים
מידע על שדות נוספים שאפשר להגדיר כשיוצרים רכב זמין במאמר עדכון שדות של רכב.
דוגמה ליצירת רכב
הערך שמוחזר מהפונקציה 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.