يصف هذا المستند كيفية إنشاء رحلة بوجهة واحدة، وضبط الحقول الصحيحة، وتعيينها لمركبة لتنفيذها. يفترض هذا المستند أنّك أعددت Fleet Engine وأنشأت مركبات ولديك تطبيق سائق يعمل، وتطبيق مستهلك اختياريًا. يُرجى الاطّلاع على الأدلة ذات الصلة التالية:
الأساسيات المتعلّقة بإنشاء الرحلات
يصف هذا القسم تفاصيل الطلب اللازمة لإنشاء رحلة في Fleet Engine. يمكنك إرسال طلب إنشاء باستخدام gRPC أو REST.
حقول الرحلة
استخدِم الحقول التالية لإنشاء رحلة في Fleet Engine. يمكنك استخدام حقول مختلفة لأنواع الرحلات المختلفة: الرحلات بوجهة واحدة أو وجهات متعددة أو الرحلات المتتالية أو رحلات النقل المشترك. يمكنك تقديم الحقول الاختيارية عند إنشاء الرحلة، أو يمكنك ضبطها لاحقًا عند تعديل الرحلة.
| الاسم | مطلوب؟ | الوصف |
|---|---|---|
| parent | نعم | سلسلة تتضمّن رقم تعريف المشروع يجب أن يكون هذا المعرّف هو المعرّف نفسه المستخدَم في عملية دمج Fleet Engine بالكامل، مع أدوار حساب الخدمة نفسها. |
| trip_id | نعم | سلسلة تنشئها وتحدّد هذه الرحلة بشكل فريد تخضع أرقام تعريف الرحلات لقيود معيّنة، كما هو موضّح في المرجع. |
| trip_type | نعم | اضبط TripType على القيم التالية لنوع الرحلة التي تنشئها:
|
| pickup_point | نعم | نقطة انطلاق الرحلة |
| Intermediate destinations | نعم | الرحلات بوجهات متعددة فقط: قائمة بالوجهات الوسيطة التي يزورها السائق بين
نقطة الانطلاق ونقطة الوصول. على غرار |
| vehicle_waypoints | نعم | رحلات النقل المشترك فقط: يتيح هذا الحقل دمج نقاط الطريق من رحلات متعددة.
يحتوي هذا الحقل على جميع نقاط الطريق المتبقية للمركبة المعيّنة، بالإضافة إلى نقاط طريق الانطلاق والوصول لهذه الرحلة. يمكنك ضبط هذا الحقل
من خلال استدعاء |
| number_of_passengers | لا | عدد الركاب في الرحلة |
| dropoff_point | لا | وجهة الرحلة |
| vehicle_id | لا | رقم تعريف المركبة المعيّنة للرحلة |
مثال: رحلة بوجهة واحدة
يوضّح المثال التالي كيفية إنشاء رحلة إلى مركز Grand Indonesia East التجاري. تتضمّن الرحلة راكبَين، وهي حصرية، وحالتها NEW. يجب أن يكون provider_id للرحلة هو رقم تعريف مشروع Google Cloud نفسه. تعرض الأمثلة مشروع Google Cloud برقم تعريف المشروع my-rideshare-co-gcp-project. يجب أن يتضمّن هذا المشروع أيضًا حساب خدمة لاستدعاء Fleet Engine. يُرجى الاطّلاع على أدوار حساب الخدمة لمزيد من التفاصيل.
static final String PROJECT_ID = "my-rideshare-co-gcp-project";
TripServiceBlockingStub tripService = TripService.newBlockingStub(channel);
// Trip initial settings.
String parent = "providers/" + PROJECT_ID;
Trip trip = Trip.newBuilder()
.setTripType(TripType.EXCLUSIVE) // Use TripType.SHARED for carpooling.
.setPickupPoint( // Grand Indonesia East Mall.
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder()
.setLatitude(-6.195139).setLongitude(106.820826)))
.setNumberOfPassengers(2)
// Provide the drop-off point if available.
.setDropoffPoint(
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder()
.setLatitude(-6.1275).setLongitude(106.6537)))
.build();
// Create trip request
CreateTripRequest createTripRequest = CreateTripRequest.newBuilder()
.setParent(parent)
.setTripId("trip-8241890") // Trip ID assigned by the provider.
.setTrip(trip) // The initial state is NEW.
.build();
// Error handling.
try {
Trip createdTrip = tripService.createTrip(createTripRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case ALREADY_EXISTS:
break;
case PERMISSION_DENIED:
break;
}
return;
}