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