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 到 10,000 公尺之間 (含)。

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」的交通工具類型。

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 中的包容/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

這個欄位的用途是取代「requiredAttributes」、「requiredOneOfAttributes」和「required_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」格式的時間戳記,採用奈秒解析度和最多九個小數位數。範例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

vehiclePickupDistanceMeters

integer

車輛目前位置與要求中指定的上車地點之間的距離,包括現有行程的任何中繼上車或下車地點。此距離包含計算的行車 (路線) 距離,以及導航終點和要求的上車地點之間的直線距離。(導航終點與要求的上車地點之間的距離通常很小)。空白值表示計算距離時發生錯誤。

vehiclePickupStraightLineDistanceMeters

integer

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

vehicleDropoffEta

string (Timestamp format)

完整車輛的行駛預計到達點,到達要求中指定的下車地點。預計到達時間包含在要求中指定的 dropoffPoint 之前任何路線控點停止。您必須在要求中指定下車點,系統才會填入這個值。如果值為空白,表示計算預計到達時間時發生錯誤。

採用 RFC3339 世界標準時間「Zulu」格式的時間戳記,採用奈秒解析度和最多九個小數位數。範例:"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 車輛會先完成目前的進行中行程,再前往上車地點。計算預計到達時間和距離時,系統會考量現有的行程。