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

כדי ליצור רכב ב-Fleet Engine לנסיעות על פי דרישה, משתמשים בנקודת הקצה CreateVehicle עם הערך CreateVehicleRequest. כדי להשתמש בנקודת הקצה הזו, נדרש חשבון עם התפקיד אדמין של Fleet Engine על פי דרישה.

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

כשיוצרים כלי רכב לנסיעות על פי דרישה, צריך להגדיר שדות נדרשים. כדאי גם להכיר את האופן שבו שדות מסוימים של כלי רכב משפיעים על פונקציונליות אחרת ב-Fleet Engine. מידע נוסף זמין במאמר עדכון שדות הרכב.

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

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

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