لإنشاء مركبة في Fleet Engine للرحلات عند الطلب، استخدِم نقطة نهاية CreateVehicle
مع CreateVehicleRequest
. تتطلّب نقطة النهاية هذه حسابًا يمتلك دور مشرف "محرك الأسطول" عند الطلب.
حقول لمركبات الرحلات عند الطلب
عند إنشاء مركبات للرحلات عند الطلب، يجب إعداد الحقول المطلوبة. يجب أن تكون أيضًا على دراية بكيفية تأثير حقول المركبات معيّنة في وظائف أخرى في 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.