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),进行此调用的服务账号所属的 Google Cloud 项目所属的项目。

请求正文

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

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 到 10,000 米之间(包括这两个数值)。

count

integer

必需。指定要返回的最大车辆数。该值必须介于 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 个 requiredAttributes。这与车辆允许的属性数量上限一致。

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,则搜索结果可包含具有 1 个有效行程且状态为 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)

车辆到达请求中指定的下车点的完整预计到达时间 (ETA)。预计到达时间包括在请求中指定的 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 车辆将完成当前正在进行的行程,然后再前往上车点。预计到达时间和距离时会将现有行程考虑在内。