В рамках услуги поездок по запросу Mobility вы можете найти ближайшие транспортные средства с помощью метода SearchVehicles
.
Метод SearchVehicles
позволяет вам находить доступные близлежащие транспортные средства в вашем мобильном приложении для потребителей, которые лучше всего подходят для определенной поездки или запроса на доставку. API SearchVehicles
возвращает ранжированный список транспортных средств, атрибуты которых соответствуют запрошенным атрибутам поездки. Ранжирование осуществляется по вашему выбору ETA, расстоянию или расстоянию по прямой от точки посадки.
Атрибуты поиска | Атрибуты транспортного средства |
---|---|
|
|
Используйте метод SearchVehicles
Чтобы использовать SearchVehicles
, следуйте этой общей процедуре:
- Создайте
SearchVehiclesRequest
на основе поездки, которую необходимо назначить. - Вызовите API
SearchVehicles
(vehicleService.searchVehicles
) с помощью сформированного запроса. - Обработайте
SearchVehicleResponse
, возвращенный API.
ПоискТранспортные средстваПоля запроса
Для создания SearchVehiclesRequest
используйте следующие обязательные поля атрибутов:
Поле | Описание |
---|---|
родитель | Обязательно . Должен быть в формате providers/{provider}. Поставщик должен быть идентификатором проекта Google Cloud Project, членом которого является учетная запись службы, выполняющая этот вызов. |
типы_транспортных_средств | Обязательно . Типы запрашиваемых транспортных средств: АВТО, ДВУХКОЛЕСНЫЙ ТРАНСПОРТ, ТАКСИ, ГРУЗОВИК, ВЕЛОСИПЕД или ПЕШЕХОД. |
типы_поездок | Обязательно . Либо ЭКСКЛЮЗИВНЫЙ (одна активная поездка за раз на водителя), либо ОБЩИЙ (одна или несколько поездок за раз на водителя). |
минимальная_емкость | Обязательно . Минимальная оставшаяся вместимость транспортного средства для новой поездки, как для пассажиров, так и для доставки грузов. |
pickup_point | Обязательно . Место отправления в координатах широты и долготы. |
точка_высадки | Необязательно. Место высадки в координатах широты/долготы. Поле обязательно, если trip_types содержит TripType.SHARED. |
pickup_radius_meters | Обязательно . Радиус в метрах зоны поиска автомобиля от точки подачи. |
заказ_по | Обязательно . Заказывайте автомобили одним из следующих способов:
|
считать | Обязательно . Максимальное количество возвращаемых транспортных средств от 1 до 50. |
фильтр | Необязательно . Фильтрующий запрос, применяемый при поиске транспортных средств. |
максимальная_стабильность | Необязательно . Ограничивает поиск только теми транспортными средствами, которые отправили обновления местоположения в Fleet Engine в течение указанного периода. Если это поле не задано, сервер использует пять минут в качестве значения по умолчанию. |
Полный набор полей SearchVehicleRequest можно найти в справочной документации.
ПоискТранспортные средстваСценарии запроса
В этом разделе показаны примеры создания SearchVehiclesRequest
.
Например, предположим, что клиент хочет, чтобы его забрали из RestaurantX, и у вас есть четыре автомобиля:
- Транспортное средство 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
ПоискТранспортные средстваПоля ответа
SearchVehiclesResponse
состоит из списка сущностей VehicleMatch
, ранжированных по указанному атрибуту order_by в SearchVehiclesRequest
. Каждая сущность VehicleMatch
имеет следующие поля:
Поле | Описание |
---|---|
транспортное средство | Объект Vehicle , включая атрибуты vehicle_id и Vehicle . |
автомобиль_пикап_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 . Подробности создания атрибутов транспортного средства см. в разделе Поле атрибутов транспортного средства в руководстве Обновление полей транспортного средства .
Пример поискаТранспортные средства
В следующем примере показано, как использовать API SearchVehicles
с помощью библиотеки 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.
Что дальше?
,В рамках услуги поездок по запросу Mobility вы можете найти ближайшие транспортные средства с помощью метода SearchVehicles
.
Метод SearchVehicles
позволяет вам находить доступные близлежащие транспортные средства в вашем мобильном приложении для потребителей, которые лучше всего подходят для определенной поездки или запроса на доставку. API SearchVehicles
возвращает ранжированный список транспортных средств, атрибуты которых соответствуют запрошенным атрибутам поездки. Ранжирование осуществляется по вашему выбору ETA, расстоянию или расстоянию по прямой от точки посадки.
Атрибуты поиска | Атрибуты транспортного средства |
---|---|
|
|
Используйте метод SearchVehicles
Чтобы использовать SearchVehicles
, следуйте этой общей процедуре:
- Создайте
SearchVehiclesRequest
на основе поездки, которую необходимо назначить. - Вызовите API
SearchVehicles
(vehicleService.searchVehicles
) с помощью сформированного запроса. - Обработайте
SearchVehicleResponse
, возвращенный API.
ПоискТранспортные средстваПоля запроса
Для создания SearchVehiclesRequest
используйте следующие обязательные поля атрибутов:
Поле | Описание |
---|---|
родитель | Обязательно . Должен быть в формате providers/{provider}. Поставщик должен быть идентификатором проекта Google Cloud Project, членом которого является учетная запись службы, выполняющая этот вызов. |
типы_транспортных_средств | Обязательно . Типы запрашиваемых транспортных средств: АВТО, ДВУХКОЛЕСНЫЙ ТРАНСПОРТ, ТАКСИ, ГРУЗОВИК, ВЕЛОСИПЕД или ПЕШЕХОД. |
типы_поездок | Обязательно . Либо ЭКСКЛЮЗИВНЫЙ (одна активная поездка за раз на водителя), либо ОБЩИЙ (одна или несколько поездок за раз на водителя). |
минимальная_емкость | Обязательно . Минимальная оставшаяся вместимость транспортного средства для новой поездки, как для пассажиров, так и для доставки грузов. |
pickup_point | Обязательно . Место отправления в координатах широты и долготы. |
точка_высадки | Необязательно. Место высадки в координатах широты/долготы. Поле обязательно, если trip_types содержит TripType.SHARED. |
pickup_radius_meters | Обязательно . Радиус в метрах зоны поиска автомобиля от точки подачи. |
заказ_по | Обязательно . Заказывайте автомобили одним из следующих способов:
|
считать | Обязательно . Максимальное количество возвращаемых транспортных средств от 1 до 50. |
фильтр | Необязательно . Фильтрующий запрос, применяемый при поиске транспортных средств. |
максимальная_стабильность | Необязательно . Ограничивает поиск только теми транспортными средствами, которые отправили обновления местоположения в Fleet Engine в течение указанного периода. Если это поле не задано, сервер использует пять минут в качестве значения по умолчанию. |
Полный набор полей SearchVehicleRequest можно найти в справочной документации.
ПоискТранспортные средстваСценарии запроса
В этом разделе показаны примеры создания SearchVehiclesRequest
.
Например, предположим, что клиент хочет, чтобы его забрали из RestaurantX, и у вас есть четыре автомобиля:
- Транспортное средство 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
ПоискТранспортные средстваПоля ответа
SearchVehiclesResponse
состоит из списка сущностей VehicleMatch
, ранжированных по указанному атрибуту order_by в SearchVehiclesRequest
. Каждая сущность VehicleMatch
имеет следующие поля:
Поле | Описание |
---|---|
транспортное средство | Объект Vehicle , включая атрибуты vehicle_id и Vehicle . |
автомобиль_пикап_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 . Подробности создания атрибутов транспортного средства см. в разделе Поле атрибутов транспортного средства в руководстве Обновление полей транспортного средства .
Пример поискаТранспортные средства
В следующем примере показано, как использовать API SearchVehicles
с помощью библиотеки 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.