יצירת רכב לנסיעות על פי דרישה

כדי ליצור רכב ב-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.

המאמרים הבאים