Method: providers.vehicles.search

返回与请求选项匹配的车辆列表。

HTTP 请求

POST https://fleetengine.googleapis.com/v1/{parent=providers/*}/vehicles:search

网址采用 gRPC 转码语法。

路径参数

参数
parent

string

必需。必须采用 providers/{provider} 格式。提供方必须是进行此调用的服务帐号所属的 Google Cloud 项目的 ID(例如 sample-cloud-project)。

请求正文

请求正文中包含结构如下的数据:

JSON 表示法
{
  "header": {
    object (RequestHeader)
  },
  "pickupPoint": {
    object (TerminalLocation)
  },
  "dropoffPoint": {
    object (TerminalLocation)
  },
  "pickupRadiusMeters": integer,
  "count": integer,
  "minimumCapacity": integer,
  "tripTypes": [
    enum (TripType)
  ],
  "maximumStaleness": string,
  "vehicleTypes": [
    {
      object (VehicleType)
    }
  ],
  "requiredAttributes": [
    {
      object (VehicleAttribute)
    }
  ],
  "requiredOneOfAttributes": [
    {
      object (VehicleAttributeList)
    }
  ],
  "requiredOneOfAttributeSets": [
    {
      object (VehicleAttributeList)
    }
  ],
  "orderBy": enum (VehicleMatchOrder),
  "includeBackToBack": boolean,
  "tripId": string,
  "currentTripsPresent": enum (CurrentTripsPresent),
  "filter": string
}
字段
header

object (RequestHeader)

标准 Fleet Engine 请求标头。

pickupPoint

object (TerminalLocation)

必需。要搜索的上车点。

dropoffPoint

object (TerminalLocation)

客户的预期下车点。如果 tripTypes 包含 TripType.SHARED,则此字段为必填字段。

pickupRadiusMeters

integer

必需。定义以上车点为中心的车辆搜索半径。只会返回搜索半径范围内的车辆。值必须介于 400 米(含 400 米)到 10000 米(含)之间。

count

integer

必需。指定要返回的车辆数量上限。该值必须介于 1 到 50 之间(含 1 和 50)。

minimumCapacity

integer

必需。指定行程所考虑的乘客人数。该值必须大于或等于 1。容量值不考虑驱动程序。

tripTypes[]

enum (TripType)

必需。表示建议的行程的类型。必须且只能包含一种类型。不允许使用“UNKNOWN_TRIP_TYPE”。将搜索范围限制为支持相应行程类型的车辆。

maximumStaleness

string (Duration format)

将搜索范围限制为在指定持续时间内向 Fleet Engine 发送位置信息更新的车辆。仍在传输其位置信息的固定交通工具不被视为过时。如果未设置此字段,则服务器将使用 5 分钟作为默认值。

此时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

vehicleTypes[]

object (VehicleType)

必需。将搜索范围限制为属于指定类型之一的车辆。必须指定至少一种交通工具类型。不允许使用类别为 UNKNOWN 的 VehicleType。

requiredAttributes[]

object (VehicleAttribute)

调用方可以使用 requiredAttributesrequiredOneOfAttributesrequiredOneOfAttributeSets 字段的任意组合形成复杂的逻辑运算。

requiredAttributes 是一个列表;requiredOneOfAttributes 使用的消息允许列表列表。这两个字段的组合可用于组合此表达式:

(requiredAttributes[0] AND requiredAttributes[1] AND ...)
AND
(requiredOneOfAttributes[0][0] OR requiredOneOfAttributes[0][1] OR
...)
AND
(requiredOneOfAttributes[1][0] OR requiredOneOfAttributes[1][1] OR
...)

将搜索范围限制为仅搜索具有指定属性的车辆。此字段是结合/AND 运算。最多允许 50 个 requiredAttribute。这符合车辆上允许的属性数量上限。

requiredOneOfAttributes[]

object (VehicleAttributeList)

将搜索范围限制为在每个 VehicleAttributeList 中至少具有一个指定属性的车辆。在每个列表中,车辆必须至少匹配一个属性。此字段是每个 VehicleAttributeList 中的包含式析取/或 运算以及针对 VehicleAttributeList 集合的合取/AND 运算。

requiredOneOfAttributeSets[]

object (VehicleAttributeList)

requiredOneOfAttributeSets 提供其他功能。

requiredOneOfAttributes 类似,requiredOneOfAttributeSets 使用的消息允许列表列表,并且允许使用如下表达式:

(requiredAttributes[0] AND requiredAttributes[1] AND ...)
AND
(
  (requiredOneOfAttributeSets[0][0] AND
  requiredOneOfAttributeSets[0][1] AND
  ...)
  OR
  (requiredOneOfAttributeSets[1][0] AND
  requiredOneOfAttributeSets[1][1] AND
  ...)
)

将搜索范围限制为仅搜索具有 VehicleAttributeList 中所有属性的车辆。在每个列表中,车辆必须与所有属性匹配。此字段是每个 VehicleAttributeList 中的联结/AND 运算,以及 VehicleAttributeList 集合中的包含析取/或 运算。

orderBy

enum (VehicleMatchOrder)

必需。指定所需的结果排序标准。

includeBackToBack

boolean

用于指明只有一次有效行程的车辆才符合此搜索的条件。此字段仅在未指定 currentTripsPresent 时使用。如果未指定 currentTripsPresent 且此字段为 false,系统会从搜索结果中排除已分配行程的车辆。如果未指定 currentTripsPresent 且此字段为 true,则搜索结果可能会包含有一项有效行程且状态为 ENROUTE_TO_DROPOFF 的车辆。指定 currentTripsPresent 时,此字段不能设为 true。

默认值为 false

tripId

string

表示与此 SearchVehicleRequest 关联的行程。

currentTripsPresent

enum (CurrentTripsPresent)

这表示有有效行程的车辆是否符合此搜索的条件。如果 tripType 包含 SHARED,则必须将其设置为 CURRENT_TRIPS_PRESENT_UNSPECIFIED 以外的值。

filter

string

可选。搜索车辆时要应用的过滤条件查询。有关过滤器语法的示例,请参阅 http://aip.dev/160

此字段旨在替换 requiredAttributesrequiredOneOfAttributesrequired_one_of_attributes_sets 字段。如果此处指定了非空值,则以下字段必须为空:requiredAttributesrequiredOneOfAttributesrequired_one_of_attributes_sets

此过滤条件充当具有其他约束条件(例如 minimumCapacityvehicleTypes)的 AND 子句。

请注意,系统仅支持针对车辆属性的查询(例如 attributes.<key> = <value>attributes.<key1> = <value1> AND attributes.<key2> = <value2>)。一个过滤条件查询中最多可以使用 50 个限制。

此外,所有属性都以字符串形式存储,因此系统唯一支持对属性进行比较,即字符串比较。为了与数字或布尔值进行比较,这些值必须用显式引号引起来,才会被视为字符串(例如,attributes.<key> = "10"attributes.<key> = "true")。

响应正文

vehicles.search 响应消息。

如果成功,响应正文将包含结构如下的数据:

JSON 表示法
{
  "matches": [
    {
      object (VehicleMatch)
    }
  ]
}
字段
matches[]

object (VehicleMatch)

符合 SearchVehiclesRequest 条件的车辆列表,根据 SearchVehiclesRequest.order_by 字段排序。

VehicleAttributeList

车辆属性的列表数据类型。

JSON 表示法
{
  "attributes": [
    {
      object (VehicleAttribute)
    }
  ]
}
字段
attributes[]

object (VehicleAttribute)

此集合中的属性列表。

VehicleMatchOrder

指定响应中车辆匹配的顺序。

枚举
UNKNOWN_VEHICLE_MATCH_ORDER 默认值,用于未指定或无法识别的车辆匹配顺序。
PICKUP_POINT_ETA 到达上车点的车辆行驶时间,升序排序。
PICKUP_POINT_DISTANCE 到上车点,按车辆行驶距离升序排序。
DROPOFF_POINT_ETA 按照车辆行驶时间升序排列,抵达下车点。只有在请求中指定下车点时,才能使用此订单。
PICKUP_POINT_STRAIGHT_DISTANCE 从上次报告车辆位置到上车点,按直线距离升序排列。
COST 按配置的匹配费用升序排列。匹配费用是指直线距离和预计到达时间之间的加权计算。权重是采用默认值设置的,可以为每个客户进行修改。如果您需要为项目修改这些权重,请与 Google 支持团队联系。

CurrentTripsPresent

指定车辆当前行程的限制类型。

枚举
CURRENT_TRIPS_PRESENT_UNSPECIFIED 有行程的车辆的可用性受 includeBackToBack 字段控制。
NONE 没有行程的车辆可能会显示在搜索结果中。使用此值时,includeBackToBack 不能为 true
ANY 搜索结果中会包含最多 5 个当前行程和 10 个航点的车辆。使用此值时,includeBackToBack 不能为 true

VehicleMatch

包含与车辆 SearchVehiclesRequest 的有效行程点匹配的车辆以及相关估算值。

JSON 表示法
{
  "vehicle": {
    object (Vehicle)
  },
  "vehiclePickupEta": string,
  "vehiclePickupDistanceMeters": integer,
  "vehiclePickupStraightLineDistanceMeters": integer,
  "vehicleDropoffEta": string,
  "vehiclePickupToDropoffDistanceMeters": integer,
  "tripType": enum (TripType),
  "vehicleTripsWaypoints": [
    {
      object (Waypoint)
    }
  ],
  "vehicleMatchType": enum (VehicleMatchType),
  "requestedOrderedBy": enum (VehicleMatchOrder),
  "orderedBy": enum (VehicleMatchOrder)
}
字段
vehicle

object (Vehicle)

必需。与请求匹配的车辆。

vehiclePickupEta

string (Timestamp format)

车辆预计到达请求中指定的上车点的预计到达时间。空值表示计算车辆预计到达时间失败。如果 SearchVehiclesRequest.include_back_to_backtrue,并且这辆车有进行中的行程,vehiclePickupEta 包含完成当前有效行程所需的时间。

采用 RFC3339 世界协调时间 (UTC)(即“祖鲁时”)格式的时间戳,采用纳秒级精度,最多包含九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

vehiclePickupDistanceMeters

integer

从车辆当前位置到请求中指定的上车点的距离,包括现有行程的任何中间上车点或下车点。此距离包括计算出的驾车(路线)距离,以及导航终点和请求的上车点之间的直线距离。(导航端点和请求的上车点之间的距离通常很小。)空值表示计算距离时出错。

vehiclePickupStraightLineDistanceMeters

integer

必需。车辆与请求中指定的上车点之间的直线距离。

vehicleDropoffEta

string (Timestamp format)

整辆车的预计到达时间到达请求中指定的下车点。预计到达时间包括在请求中指定的 dropoffPoint 之前的任何航点处停靠。只有在请求中指定下车点时,系统才会填充此值。空值表示计算预计到达时间时出错。

采用 RFC3339 世界协调时间 (UTC)(即“祖鲁时”)格式的时间戳,采用纳秒级精度,最多包含九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

vehiclePickupToDropoffDistanceMeters

integer

车辆从上车点到请求中指定的下车点的行驶距离(以米为单位)。该距离仅在两点之间计算,不包括车辆位置或车辆到达上车点或下车点之前必须到达的任何其他点。仅当在请求中指定 dropoffPoint 时,系统才会填充此值。如果值为空,则表示无法计算请求中指定的上车点与下车点之间的距离。

tripType

enum (TripType)

必需。用于计算上车点预计到达时间的请求的行程类型。

vehicleTripsWaypoints[]

object (Waypoint)

用于计算预计到达时间的有序航点列表。该列表包括车辆位置、车辆的有效行程的上车点,以及请求中提供的取车点。空列表表示计算车辆预计到达时间失败。

vehicleMatchType

enum (VehicleMatchType)

车辆匹配的类型。

requestedOrderedBy

enum (VehicleMatchOrder)

为车辆匹配项排序时请求的顺序。

orderedBy

enum (VehicleMatchOrder)

此车辆的实际订单。通常,这将匹配请求中的“orderBy”字段;但在某些情况下(例如发生内部服务器错误),也可以使用其他方法(例如 PICKUP_POINT_STRAIGHT_DISTANCE)。

关键点

描述 SearchVehiclesResponseVehicleMatch 的路线沿途的中间点。此概念在所有其他端点中表示为 TripWaypoint

JSON 表示法
{
  "latLng": {
    object (LatLng)
  },
  "eta": string
}
字段
latLng

object (LatLng)

此航点的位置。

eta

string (Timestamp format)

车辆到达此航点的预计时间。

采用 RFC3339 世界协调时间 (UTC)(即“祖鲁时”)格式的时间戳,采用纳秒级精度,最多包含九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

VehicleMatchType

车辆匹配项的类型。

枚举
UNKNOWN 未知的车辆匹配类型
EXCLUSIVE 这辆车目前未分配任何行程,可以前往上车点。
BACK_TO_BACK 车辆目前已分配给行程,但在完成进行中的行程后可以前往上车点。预计到达时间和距离计算会将现有行程考虑在内。
CARPOOL 车辆的载客量足以容纳共享行程。
CARPOOL_BACK_TO_BACK 车辆将结束当前正在进行的行程,然后再前往上车点。预计到达时间和距离计算会将现有行程考虑在内。