این سند نحوه ایجاد سفر تکمقصدی، تنظیم فیلدهای صحیح، و واگذاری آن به خودرو برای انجام را شرح میدهد. فرض بر این است که 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 | نه | شناسه خودرو اختصاصدادهشده به سفر. |
مثال: سفر تکمقصدی
مثال زیر نشان میدهد که چگونه سفری به مرکز خرید گرند اندونزی ایست ایجاد کنید. این سفر دو مسافر دارد، انحصاری است، و وضعیت آن
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;
}