به عنوان بخشی از سرویس سفر درخواستی Mobility، میتوانید با استفاده از روش SearchVehicles
، وسایل نقلیه نزدیک را پیدا کنید.
روش SearchVehicles
به شما امکان می دهد وسایل نقلیه موجود در نزدیکی را در برنامه تلفن همراه مصرف کننده خود بیابید که برای یک سفر خاص یا درخواست تحویل مناسب هستند. SearchVehicles
API فهرست رتبهبندیشدهای از وسایل نقلیه را برمیگرداند که ویژگیهای آنها با ویژگیهای سفر درخواستی مطابقت دارد. رتبه بندی بر اساس انتخاب شما از بین ETA، فاصله یا فاصله خط مستقیم از نقطه تحویل مرتب می شود.
ویژگی های جستجو | ویژگی های خودرو |
---|---|
|
|
از روش SearchVehicles
استفاده کنید
برای استفاده از SearchVehicles
، این روند کلی را دنبال کنید:
- بر اساس سفری که قرار است اختصاص داده شود، یک
SearchVehiclesRequest
بسازید. - با درخواست ساخته شده،
SearchVehicles
API (vehicleService.searchVehicles
) را فراخوانی کنید. -
SearchVehicleResponse
برگشتی از API را پردازش کنید.
فیلدهای Search VehiclesRequest
برای ساخت SearchVehiclesRequest
از فیلدهای ویژگی مورد نیاز زیر استفاده کنید:
میدان | توضیحات |
---|---|
پدر و مادر | مورد نیاز . باید در قالب ارائه دهندگان/{provider} باشد. ارائهدهنده باید شناسه پروژه Google Cloud Project باشد که حساب سرویسی که این تماس را برقرار میکند عضو آن است. |
خودرو_انواع | مورد نیاز . انواع وسایل نقلیه درخواستی، AUTO، TWO_WHEELER، TAXI، TRUCK، BICYCLE یا PEDESTRIAN. |
انواع_سفر | مورد نیاز . یا انحصاری (یک سفر فعال در هر زمان برای هر راننده) یا به اشتراک گذاشته شده (یک یا چند سفر در یک زمان برای هر راننده). |
حداقل_ظرفیت | مورد نیاز . حداقل ظرفیت باقیمانده وسیله نقلیه برای سفر جدید، چه برای مسافران و چه برای تحویل. |
نقطه برداشت | مورد نیاز . مکان پیکاپ سفر در مختصات لات/بلند. |
dropoff_point | اختیاری. محل تخلیه سفر بر حسب مختصات لات/بلند. اگر trip_types حاوی TripType.SHARED باشد، فیلد مورد نیاز است. |
پیکاپ_شعاع_متر | مورد نیاز . شعاع بر حسب متر منطقه جستجوی وسیله نقلیه از نقطه وانت. |
سفارش_بر اساس | مورد نیاز . وسایل نقلیه را با یکی از موارد زیر سفارش دهید:
|
شمارش | مورد نیاز . حداکثر تعداد وسایل نقلیه برای بازگشت از 1 تا 50. |
فیلتر کنید | اختیاری یک درخواست فیلتر برای اعمال هنگام جستجوی وسایل نقلیه. |
برای مشاهده مجموعه کامل فیلدهای Search VehicleRequest به مستندات مرجع مراجعه کنید.
سناریوهای جستجوی وسایل نقلیه درخواست
این بخش نمونه هایی از نحوه ساخت SearchVehiclesRequest
را نشان می دهد.
به عنوان مثال، فرض کنید یک مشتری می خواهد از رستوران ایکس تحویل بگیرد و شما چهار وسیله نقلیه دارید:
- وسیله نقلیه 1 : 3500 متر دورتر از RestaurantX.
- وسیله نقلیه 2 : 100 متر دور از RestaurantX با یک سفر فعال با پیکاپ و تحویل در مکان های A و B.
- وسیله نقلیه 3 : 200 متر دورتر از RestaurantX با یک فروند باقی مانده در فاصله بسیار دور.
- وسیله نقلیه 4 : 1000 متر دورتر از RestaurantX.
موارد زیر درخواستهای مختلف خودرویی را که آنها برمیگردانند نشان میدهد.
خودروی برگشتی 4
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA
خودروی 3 و 4 را برمیگرداند
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, is_back_to_back enabled
خودروی 2، 3 و 4 را برمیگرداند
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, current_trips_present = ALL
فیلدهای Search Vehicles Response
یک SearchVehiclesResponse
شامل لیستی از موجودیتهای VehicleMatch
است که بر اساس ویژگی order_by مشخص شده در SearchVehiclesRequest
رتبهبندی میشود. هر نهاد VehicleMatch
دارای فیلدهای زیر است:
میدان | توضیحات |
---|---|
وسیله نقلیه | شیء Vehicle ، از جمله خودرو_id و ویژگی Vehicle . |
وسیله_پیکاپ_eta | ETA خودرو در محل وانت در سفر جدید. این ETA رانندگی است. |
وسیله_پیکاپ_فاصله_سنج | فاصله بین وسیله نقلیه و محل وانت در سفر جدید بر حسب متر. |
وسیله_پیکاپ_خط_مستقیم_متر_فاصله_سنج | فاصله خط مستقیم بر حسب متر بین وسیله نقلیه و محل وانت در سفر جدید. |
automjet_افت_تا | مهر زمانی ETA وسیله نقلیه در محل وانت سفر جدید. توجه داشته باشید که ETA ETA محرک است. |
وسیله_سفر_نقاط راه | فهرستی از نقاط بین راهی، از جمله نقاط تحویل و تحویل، برای سفرهای فعالی که در حال حاضر به خودرو اختصاص داده شده است. |
وسیله_کبریت_نوع | نوع سفر وسیله نقلیه، EXCLUSIVE، BACK_TO_BACK، CARPOOL، یا CARPOOL_BACK_TO_BACK. |
برای فهرست کامل فیلدهای VehicleMatch
، نگاه کنید به:
-
VehicleMatch message
(gRPC) -
VehicleMatch resource
(REST)
از پرس و جوهای فیلتر استفاده کنید
SearchVehicles
و ListVehicles
از فیلتر کردن ویژگیهای خودرو با استفاده از جستجوی فیلتر پشتیبانی میکنند.
درخواستهای فیلتر فقط از فیلتر کردن ویژگیهای سفارشی برای وسایل نقلیه پشتیبانی میکنند و نمیتوانند برای فیلدهای دیگر استفاده شوند. وقتی در جستجویی استفاده میشود که شامل معیارهای فیلد دیگر، مانند minimum_capacity
یا vehicle_types
است، پرس و جو فیلتر به عنوان یک AND
عمل میکند.
به عنوان مثال، اگر وسیله نقلیهای را جستجو کنید که دارای حداقل ظرفیت 6 نفر باشد و attributes
مانند دوستدار حیوانات خانگی را فیلتر کنید، معیارهای شما فقط وسایل نقلیهای را برمیگرداند که هم دوستدار حیوانات هستند و هم میتوانند حداقل 6 مسافر را حمل کنند.
برای نحو پرس و جو فیلتر، برای مثال AIP-160 را ببینید. برای جزئیات در مورد ایجاد ویژگی های خودرو، به قسمت ویژگی های خودرو در راهنمای فیلدهای خودرو به روز رسانی مراجعه کنید.
مثال Search Vehicles
مثال زیر نحوه استفاده از SearchVehicles
API را با استفاده از کتابخانه Java gRPC نشان می دهد.
static final String PROJECT_ID = "project-id";
VehicleServiceBlockingStub vehicleService =
VehicleService.newBlockingStub(channel);
String parent = "providers/" + PROJECT_ID;
SearchVehiclesRequest searchVehiclesRequest = SearchVehiclesRequest.newBuilder()
.setParent(parent)
.setPickupPoint( // Grand Indonesia East Mall
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder().setLatitude(-6.195139).setLongitude(106.820826)))
.setDropoffPoint( // Balai Sidang Jkt Convention Center
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder().setLatitude(-6.213796).setLongitude(106.807195)))
.setPickupRadiusMeters(2000)
.setCount(10)
.setMinimumCapacity(2)
.addTripTypes(TripType.EXCLUSIVE)
.addVehicleTypes(VehicleType.newBuilder().setCategory(Category.AUTO).build())
.setCurrentTripsPresent(CurrentTripsPresent.ANY)
.setFilter("attributes.on_trip=\"false\"")
.setOrderBy(VehicleMatchOrder.PICKUP_POINT_ETA)
.build();
try {
SearchVehiclesResponse searchVehiclesResponse =
vehicleService.searchVehicles(searchVehiclesRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
List<VehicleMatch> vehicleMatches =
searchVehicleResponse.getMatchesList();
// Each VehicleMatch contains a Vehicle entity and information about the
// distance and ETA to the pickup point and drop-off point.