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