این سند نحوه ایجاد سفر پشتسرهم، تنظیم فیلدهای صحیح، و اختصاص آن به وسیله نقلیه برای انجام را شرح میدهد. فرض میشود که «موتور ناوگان» را راهاندازی کردهاید، خودروها را ایجاد کردهاید، برنامه راننده کاری دارید، و بهصورت اختیاری، برنامه مصرفکننده دارید. همچنین باید با سناریوهای مختلف سفر که برای سفرهای درخواستی دردسترس است آشنا باشید. برای این کار، راهنماهای مرتبط زیر را ببینید:
- راهاندازی Fleet Engine
- ایجاد وسیله نقلیه
- سناریوهای سفر در نمای کلی سفرهای درخواستی
اصول اولیه ایجاد سفر
این بخش جزئیات درخواست لازم برای ایجاد سفر در Fleet Engine را شرح میدهد. شما بااستفاده از gRPC و REST درخواست ایجاد صادر میکنید.
فیلدهای سفر
از فیلدهای زیر برای ایجاد سفر در Fleet Engine استفاده کنید. میتوانید از فیلدهای مختلف برای انواع مختلف سفرها استفاده کنید: تکمقصد یا چندمقصد، پشتسرهم، یا سفرهای استخری مشترک. هنگام ایجاد سفر میتوانید فیلدهای اختیاری را ارائه دهید یا میتوانید آنها را بعداً هنگام بهروزرسانی سفر تنظیم کنید.
| نام | الزامی است؟ | شرح |
|---|---|---|
| ولی | بله | رشتهای که شامل شناسه پروژه است. این شناسه باید همان شناسهای باشد که در سراسر ادغام Fleet Engine شما با همان نقشهای حساب سرویس استفاده میشود. |
| trip_id | بله | رشتهای که ایجاد میکنید و این سفر را بهطور منحصربهفرد شناسایی میکند. شناسههای سفر محدودیتهای خاصی دارند که در مرجع نشان داده شده است. |
| trip_type | بله | TripType را برای نوع سفری که ایجاد میکنید روی مقادیر زیر تنظیم کنید:
|
| pickup_point | بله | نقطه مبدأ سفر. |
| مقصدهای میانی | بله | فقط سفرهای چندمقصدی: فهرست مقصدهای میانی که راننده بین سوار کردن و پیاده کردن مسافر از آنها بازدید میکند. مانند |
| vehicle_waypoints | بله | فقط سفرهای استخر مشترک: این فیلد از درهمآمیزی ایستگاههای بین راهی از چند سفر پشتیبانی میکند.
این فایل شامل همه ایستگاههای بین راهی باقیمانده برای وسیله نقلیه اختصاصیافته و همچنین
ایستگاههای بین راهی تحویل و تحویلگیری برای این سفر است. میتوانید این فیلد را
با فراخوانی |
| number_of_passengers | نه | تعداد مسافران در سفر. |
| dropoff_point | نه | مقصد سفر. |
| vehicle_id | نه | شناسه خودرو اختصاصدادهشده به سفر. |
مثال: ایجاد سفر پشتسرهم
در زیر نحوه ایجاد سفر پشتسرهم و اختصاص آن به خودرو نشان داده شده است. در این سناریو، ایجاد سفر مانند سفر تکمقصد است. فقط بعداً است که سفر دیگری ایجاد میکنید و آن را به خودرویی با سفری ازقبل فعال اختصاص میدهید.
// A vehicle with ID 'my-vehicle' is already created and it is assigned to a trip with ID 'current-trip'.
static final String PROJECT_ID = "my-rideshare-co-gcp-project";
static final String VEHICLE_ID =" my-vehicle";
static final String TRIP_ID = "back-to-back-trip");
TripServiceBlockingStub tripService = TripService.newBlockingStub(channel);
String parent = "providers/" + PROJECT_ID;
Trip trip = Trip.newBuilder()
.setTripType(TripType.EXCLUSIVE)
.setPickupPoint(
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder()
.setLatitude(-6.195139).setLongitude(106.820826)))
.setDropoffPoint(
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder()
.setLatitude(-6.1275).setLongitude(106.6537)))
.setVehicleId(VEHICLE_ID)
.build();
// Create trip request
CreateTripRequest createTripRequest = CreateTripRequest.newBuilder()
.setParent(parent)
.setTripId(TRIP_ID)
.setTrip(trip)
.build();
// Error handling.
try {
// Fleet Engine automatically assigns a 'waypoints' list to the trip containing
// the vehicle's current trip waypoints.
Trip createdTrip =
tripService.createTrip(createTripRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case ALREADY_EXISTS:
break;
case PERMISSION_DENIED:
break;
}
return;
}
بهروزرسانی سفرهای پشتسرهم
وقتی خودرویی را برای سفر پشتسرهم اختصاص میدهید، سفری را به خودرو اختصاص میدهید حتی اگر قبلاً سفری به آن اختصاص داده شده باشد.
هر سفری که در Fleet Engine ایجاد میشود باید به خودرویی اختصاص داده شود تا Fleet Engine بتواند «زمانهای تخمینی رسیدن» سفر را محاسبه کند و آن را ردیابی کند. میتوانید این کار را درطول ایجاد سفر یا بعداً هنگام بهروزرسانی سفر انجام دهید.
پساز اینکه سفر را به خودرو اختصاص دادید، Fleet Engine بهطور خودکار نقطهمسیرهای مرتبط با سفرهای پشتسرهم را به فیلد نقطهمسیرهای خودرو اضافه میکند. فیلد remainingWaypoints سفر حاوی فهرستی از همه
ایستگاههای بین راه است، ازجمله ایستگاههای بین راه سفرهای دیگر که قبلاز
محل پیاده کردن سفر بازدید خواهند شد.
برای مثال، دو سفر پشت سر هم را درنظر بگیرید: سفر A و سفر B. خودرو مصرفکننده را برای سفر الف سوار کرده است و درحالیکه در مسیر مکان پیاده کردن است، راننده درخواست سوار کردن مصرفکننده دیگری را برای سفر بعدی، سفر ب، دریافت میکند.
- تماس با
getVehicle()remainingWaypointsرا برمیگرداند که شامل موارد زیر است:
الف تحویل → ب تحویل گرفتن → ب تحویل. - یا
getTrip()یاonTripRemainingWaypointsUpdatedتماس برگشتی برای سفر AremainingWaypointsبرمیگرداند که شامل این موارد است:
محل پیاده شدن. - یا
getTrip()یاonTripRemainingWaypointsUpdatedبرگشت تماس برای سفر B برمیگرداندremainingWaypointsکه شامل این موارد است:
A پیاده کردن → B سوار کردن → و B پیاده کردن.