يوضّح هذا المستند كيفية إنشاء رحلة بوجهة واحدة وضبط الحقول الصحيحة وتعيينها لمركبة لتنفيذها. يفترض هذا الدليل أنّك أعددت Fleet Engine وأنّك أنشأت مركبات ولديك تطبيق سائق يعمل، ويمكنك أيضًا استخدام تطبيق مستهلك. يمكنك الاطّلاع على الأدلة التالية ذات الصلة بذلك:
أساسيات إنشاء الرحلات
يصف هذا القسم تفاصيل الطلب اللازمة لإنشاء رحلة في Fleet Engine. يمكنك إصدار طلب إنشاء باستخدام gRPC وREST.
حقول الرحلة
استخدِم الحقول التالية لإنشاء رحلة في Fleet Engine. يمكنك استخدام حقول مختلفة لأنواع الرحلات المختلفة: رحلات ذات وجهة واحدة أو وجهات متعددة، أو رحلات متتالية، أو رحلات مشتركة. يمكنك توفير الحقول الاختيارية عند إنشاء الرحلة، أو يمكنك ضبطها لاحقًا عند تعديل الرحلة.
| الاسم | مطلوب؟ | الوصف |
|---|---|---|
| parent | نعم | سلسلة تتضمّن رقم تعريف المشروع يجب أن يكون هذا المعرّف هو نفسه المعرّف المستخدَم في عملية دمج Fleet Engine بالكامل، مع أدوار حساب الخدمة نفسها. |
| trip_id | نعم | سلسلة تنشئها لتحديد هذه الرحلة بشكل فريد. تنطبق قيود معيّنة على معرّفات الرحلات، كما هو موضّح في المرجع. |
| trip_type | نعم | اضبط السمة TripType على القيم التالية لنوع الرحلة التي تنشئها:
|
| pickup_point | نعم | نقطة انطلاق الرحلة |
| الوجهات المتوسطة | نعم | الرحلات المتعدّدة الوجهات فقط: قائمة الوجهات الوسيطة التي يزورها السائق بين
نقطة الانطلاق ونقطة الوصول. كما هو الحال مع |
| vehicle_waypoints | نعم | رحلات النقل المشترك فقط: يتيح هذا الحقل تداخل النقاط على المسار من رحلات متعددة.
وتتضمّن جميع النقاط المتبقية على المسار للمركبة المحدّدة، بالإضافة إلى نقاط الاستلام والتوصيل لهذه الرحلة. يمكنك ضبط هذا الحقل من خلال استدعاء |
| number_of_passengers | لا | عدد الركاب في الرحلة |
| dropoff_point | لا | وجهة الرحلة |
| vehicle_id | لا | رقم تعريف المركبة المخصّصة للرحلة |
مثال: رحلة إلى وجهة واحدة
يوضّح المثال التالي كيفية إنشاء رحلة إلى مركز التسوّق "غراند إندونيسيا إيست مول". تتضمّن الرحلة راكبَين، وهي حصرية، وحالتها
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;
}