این سند نحوه ایجاد یک سفر پشت سر هم، تنظیم فیلدهای صحیح و اختصاص آن به وسیله نقلیه برای انجام را شرح میدهد. فرض بر این است که شما Fleet Engine را راهاندازی کردهاید، وسایل نقلیه ایجاد کردهاید، یک برنامه راننده فعال و در صورت تمایل، یک برنامه مصرفکننده دارید. همچنین باید با سناریوهای مختلف سفر موجود برای سفرهای درخواستی آشنا باشید. برای این منظور به راهنماهای مرتبط زیر مراجعه کنید:
- موتور ناوگان را تنظیم کنید
- ایجاد وسیله نقلیه
- سناریوهای سفر در نمای کلی سفرهای درخواستی
اصول اولیه ایجاد سفر
این بخش جزئیات درخواست لازم برای ایجاد یک سفر در Fleet Engine را شرح میدهد. شما با استفاده از gRPC و REST درخواست ایجاد را ارسال میکنید.
زمینههای سفر
برای ایجاد یک سفر در Fleet Engine از فیلدهای زیر استفاده کنید. میتوانید از فیلدهای مختلف برای انواع مختلف سفرها استفاده کنید: سفرهای تک یا چند مقصدی، سفرهای پشت سر هم یا سفرهای اشتراکی. میتوانید فیلدهای اختیاری را هنگام ایجاد سفر ارائه دهید، یا میتوانید بعداً هنگام بهروزرسانی سفر، آنها را تنظیم کنید.
| نام | الزامی است؟ | توضیحات |
|---|---|---|
| والدین | بله | رشتهای که شامل شناسه پروژه است. این شناسه باید همان شناسهای باشد که در کل یکپارچهسازی Fleet Engine شما، با همان نقشهای حساب سرویس، استفاده میشود. |
| شناسه سفر | بله | رشتهای که شما ایجاد میکنید و به طور منحصر به فرد این سفر را مشخص میکند. شناسههای سفر محدودیتهای خاصی دارند، همانطور که در مرجع ذکر شده است. |
| نوع_سفر | بله | برای نوع سفری که ایجاد میکنید، TripType را روی مقادیر زیر تنظیم کنید:
|
| نقطه برداشت | بله | نقطه مبدا سفر. |
| مقاصد میانی | بله | فقط سفرهای چند مقصدی : فهرست مقصدهای میانی که راننده بین سوار شدن و پیاده کردن مسافر از آنها بازدید میکند. همانند |
| نقاط مسیر وسیله نقلیه | بله | فقط سفرهای اشتراکی : این فیلد از ادغام نقاط مسیر از چندین سفر پشتیبانی میکند. این فیلد شامل تمام نقاط مسیر باقیمانده برای وسیله نقلیه اختصاص داده شده و همچنین نقاط مسیر سوار و پیاده شده برای این سفر است. میتوانید این فیلد را با فراخوانی |
| تعداد_مسافران | خیر | تعداد مسافران در سفر. |
| نقطه رهاسازی | خیر | مقصد سفر. |
| شناسه وسیله نقلیه | خیر | شماره شناسایی وسیله نقلیه اختصاص داده شده به سفر. |
مثال: یک سفر پشت سر هم ایجاد کنید
در ادامه نحوه ایجاد یک سفر پشت سر هم و اختصاص آن به یک وسیله نقلیه نشان داده شده است. در این سناریو، ایجاد سفر مانند یک سفر تک مقصدی است. تنها بعداً میتوانید سفر دیگری ایجاد کنید و آن را به وسیله نقلیهای که از قبل یک سفر فعال دارد، اختصاص دهید.
// 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 بتواند ETA سفر را محاسبه و آن را ردیابی کند. میتوانید این کار را یا در حین ایجاد سفر یا بعداً هنگام بهروزرسانی سفر انجام دهید.
پس از اینکه سفر را به یک وسیله نقلیه اختصاص دادید، Fleet Engine به طور خودکار نقاط مسیر مرتبط با سفرهای پشت سر هم را به فیلد نقاط مسیر وسیله نقلیه اضافه میکند. فیلد نقاط مسیر remainingWaypoints یک سفر شامل لیستی از تمام نقاط مسیر، از جمله نقاط مسیر سفرهای دیگری است که قبل از پیاده شدن مسافر از آنها بازدید خواهد شد.
برای مثال، دو سفر پشت سر هم را در نظر بگیرید: سفر الف و سفر ب . وسیله نقلیه، مسافر سفر الف را سوار کرده است و در حین حرکت به سمت محل تحویل، راننده درخواستی برای سوار کردن مسافر دیگری برای سفر بعدی، سفر ب، دریافت میکند.
- فراخوانی
getVehicle()remainingWaypointsرا برمیگرداند که شامل موارد زیر هستند:
الف ) پیاده کردن → ب) سوار کردن → ب ) پیاده کردن . - چه تابع
getTrip() و چه تابعonTripRemainingWaypointsUpdatedبرای سفر A،remainingWaypointsبرمیگردانند که شامل موارد زیر باشند:
یک پیاده شدن (یا پیاده شدن از ماشین) . - چه تابع
getTrip() و چه تابعonTripRemainingWaypointsUpdatedبرای سفر B،remainingWaypointsبرمیگردانند که شامل موارد زیر باشند:
الف ) پیاده کردن → ب) برداشتن → و ب ) پیاده کردن .