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 至 10000 公尺 (含) 之間。

count

integer

必要欄位。指定傳回的車輛數量上限。這個值必須介於 1 至 50 (含) 之間。

minimumCapacity

integer

必要欄位。指定行程的乘客人數。這個值必須大於或等於 1。容量值不會計入驅動程式。

tripTypes[]

enum (TripType)

必要欄位。代表建議行程的類型。必須包含一個類型。不允許 UNKNOWN_TRIP_TYPE。將搜尋範圍限制在可支援該行程類型的車輛。

maximumStaleness

string (Duration format)

將搜尋範圍限制在指定時間範圍內,只搜尋已向 Fleet Engine 傳送位置更新的車輛。靜止車輛仍會傳送位置,因此不會被視為過時。如果未設定此欄位,伺服器會使用五分鐘做為預設值。

時間長度以秒為單位,最多可有 9 個小數位數,並應以「s」結尾,例如:"3.5s"

vehicleTypes[]

object (VehicleType)

必要欄位。將搜尋範圍限制在某個指定類型的車輛。至少須指定一種交通工具類型。不允許類別為 UNKNOWN 的 VehicleTypes。

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 個必要屬性。這與車輛允許的屬性數量上限相符。

requiredOneOfAttributes[]

object (VehicleAttributeList)

將搜尋範圍限制為每個 VehicleAttributeList 中至少包含一個指定屬性的車輛。每份清單上的車輛至少須有一項屬性相符。這個欄位是每個 VehicleAttributeList 中的否定/OR 運算,以及 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 集合內包覆式/OR 運算。

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

這個篩選函式可做為 AND 子句,但具有其他限制條件,例如 minimumCapacityvehicleTypes

請注意,系統僅支援車輛屬性查詢 (例如 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 世界標準時間「Zulu」格式的時間戳記,解析度以奈秒為單位,小數點後最多 9 位。範例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

vehiclePickupDistanceMeters

integer

車輛目前所在位置與要求中指定上車地點的距離,包括現有行程的任何中途上車或下車地點。這個距離包括計算出的行車 (路線) 距離,以及導航終點與所要求取貨地點之間的直線距離。(導航終點和要求的接送點之間的距離通常很短)。空白值表示計算距離時發生錯誤。

vehiclePickupStraightLineDistanceMeters

integer

必要欄位。車輛與要求中指定的取貨點之間的直線距離。

vehicleDropoffEta

string (Timestamp format)

車輛從要求中指定的下車地點到達目的地的預估車程時間。預計到達時間包括在要求中指定的 dropoffPoint 之前任何路線控點的停靠站。只有在要求中指定下車地點時,系統才會填入這個值。空值表示計算預估到達時間時發生錯誤。

RFC3339 世界標準時間「Zulu」格式的時間戳記,解析度以奈秒為單位,小數點後最多 9 位。範例:"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 世界標準時間「Zulu」格式的時間戳記,精確度達奈秒單位,最多九個小數位數。範例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

VehicleMatchType

車輛比對類型。

列舉
UNKNOWN 不明的車輛比對類型
EXCLUSIVE 這輛車目前還沒有指定行程,可以繼續前往上車地點。
BACK_TO_BACK 車輛目前已指派給行程,但完成行程後可繼續至上車地點。系統計算預計到達時間和距離時,會將現有行程納入考量。
CARPOOL 車輛的容量足夠,可多人共乘。
CARPOOL_BACK_TO_BACK 車輛會先完成目前的有效行程,再前往上車地點。系統計算預計到達時間和距離時,會將現有行程納入考量。