Method: providers.vehicles.search

Trả về danh sách xe phù hợp với các lựa chọn trong yêu cầu.

Yêu cầu HTTP

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

URL sử dụng cú pháp Chuyển mã gRPC.

Tham số đường dẫn

Thông số
parent

string

Bắt buộc. Phải ở định dạng providers/{provider}. Nhà cung cấp phải là Mã dự án (ví dụ: sample-cloud-project) của dự án trên Google Cloud mà tài khoản dịch vụ thực hiện lệnh gọi này là thành viên.

Nội dung yêu cầu

Nội dung yêu cầu chứa dữ liệu có cấu trúc sau:

Biểu diễn dưới dạng 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
}
Trường
header

object (RequestHeader)

Tiêu đề yêu cầu thông thường của Công cụ của đội xe.

pickupPoint

object (TerminalLocation)

Bắt buộc. Điểm đón để tìm kiếm ở gần.

dropoffPoint

object (TerminalLocation)

Địa điểm giao hàng mà khách hàng dự định. Trường này là bắt buộc nếu tripTypes chứa TripType.SHARED.

pickupRadiusMeters

integer

Bắt buộc. Xác định bán kính tìm kiếm xe xung quanh điểm nhận hàng. Hệ thống sẽ chỉ trả về những chiếc xe nằm trong bán kính tìm kiếm. Giá trị phải nằm trong khoảng từ 400 đến 10.000 mét (bao gồm).

count

integer

Bắt buộc. Cho biết số lượng xe tối đa cần trả về. Giá trị phải nằm trong khoảng từ 1 đến 50 (bao gồm).

minimumCapacity

integer

Bắt buộc. Chỉ định số lượng hành khách được xem xét cho một chuyến đi. Giá trị phải lớn hơn hoặc bằng 1. Người lái xe không được xem xét trong giá trị hạn mức.

tripTypes[]

enum (TripType)

Bắt buộc. Biểu thị loại chuyến đi được đề xuất. Phải có đúng một loại. UNKNOWN_TRIP_TYPE là không được phép. Giới hạn tìm kiếm chỉ những xe có thể hỗ trợ loại chuyến đi đó.

maximumStaleness

string (Duration format)

Chỉ cho phép tìm kiếm những xe đã gửi thông tin cập nhật vị trí đến Công cụ quản lý đội xe trong khoảng thời gian đã chỉ định. Xe đang đỗ vẫn truyền vị trí của chúng không được coi là cũ. Nếu bạn không đặt trường này, máy chủ sẽ sử dụng 5 phút làm giá trị mặc định.

Thời lượng tính bằng giây với tối đa 9 chữ số phân số, kết thúc bằng "s". Ví dụ: "3.5s".

vehicleTypes[]

object (VehicleType)

Bắt buộc. Hạn chế kết quả tìm kiếm ở những loại xe thuộc một trong các loại đã chỉ định. Bạn phải chỉ định ít nhất một loại xe. Không được phép sử dụng các loại xe có danh mục UNKNOWN.

requiredAttributes[]

object (VehicleAttribute)

Phương thức gọi có thể tạo thành các phép toán logic phức tạp bằng cách sử dụng bất kỳ tổ hợp nào của các trường requiredAttributes, requiredOneOfAttributesrequiredOneOfAttributeSets.

requiredAttributes là một danh sách; requiredOneOfAttributes sử dụng một thông báo cho phép tạo một danh sách gồm các danh sách. Khi kết hợp, hai trường này cho phép thành phần của biểu thức này:

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

Chỉ cho phép tìm kiếm những chiếc xe có các thuộc tính được chỉ định. Trường này là toán tử kết hợp/AND. Cho phép tối đa 50 requiredAttributes. Giá trị này khớp với số lượng thuộc tính tối đa được phép trên một chiếc xe.

requiredOneOfAttributes[]

object (VehicleAttributeList)

Giới hạn tìm kiếm chỉ cho những xe có ít nhất một trong các thuộc tính được chỉ định trong mỗi VehicleAttributeList. Trong mỗi danh sách, một xe phải khớp với ít nhất một thuộc tính. Trường này là một toán tử loại trừ/OR bao gồm trong mỗi VehicleAttributeList và một toán tử kết hợp/AND trên tập hợp VehicleAttributeList.

requiredOneOfAttributeSets[]

object (VehicleAttributeList)

requiredOneOfAttributeSets cung cấp chức năng bổ sung.

Tương tự như requiredOneOfAttributes, requiredOneOfAttributeSets sử dụng một thông báo cho phép danh sách danh sách, cho phép các biểu thức như sau:

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

Giới hạn tìm kiếm chỉ cho những xe có tất cả các thuộc tính trong VehicleAttributeList. Trong mỗi danh sách, một chiếc xe phải khớp với tất cả các thuộc tính. Trường này là một toán tử kết hợp/AND trong mỗi VehicleAttributeList và toán tử loại trừ bao hàm/OR trên tập hợp VehicleAttributeList.

orderBy

enum (VehicleMatchOrder)

Bắt buộc. Chỉ định tiêu chí sắp xếp mong muốn cho kết quả.

includeBackToBack

boolean

Thuộc tính này cho biết liệu những phương tiện có một chuyến đi đang hoạt động có đủ điều kiện cho lượt tìm kiếm này hay không. Trường này chỉ được dùng khi currentTripsPresent không được chỉ định. Khi currentTripsPresent không được chỉ định và trường này là false, các phương tiện có chuyến đi được chỉ định sẽ bị loại trừ khỏi kết quả tìm kiếm. Khi bạn không chỉ định currentTripsPresent và trường này là true, kết quả tìm kiếm có thể bao gồm các xe có một chuyến đi đang hoạt động và có trạng thái là ENROUTE_TO_DROPOFF. Khi chỉ định currentTripsPresent, bạn không thể đặt trường này thành true.

Giá trị mặc định là false.

tripId

string

Cho biết chuyến đi được liên kết với SearchVehicleRequest này.

currentTripsPresent

enum (CurrentTripsPresent)

Giá trị này cho biết liệu những xe có chuyến đi đang hoạt động có đủ điều kiện cho lượt tìm kiếm này hay không. Giá trị này phải được đặt thành giá trị khác với CURRENT_TRIPS_PRESENT_UNSPECIFIED nếu tripType bao gồm SHARED.

filter

string

Không bắt buộc. Cụm từ tìm kiếm để áp dụng khi tìm kiếm xe. Hãy xem http://aip.dev/160 để biết ví dụ về cú pháp bộ lọc.

Trường này được thiết kế để thay thế các trường requiredAttributes, requiredOneOfAttributesrequired_one_of_attributes_sets. Nếu bạn chỉ định một giá trị không trống tại đây, thì các trường sau phải để trống: requiredAttributes, requiredOneOfAttributesrequired_one_of_attributes_sets.

Bộ lọc này hoạt động như một mệnh đề AND với các quy tắc ràng buộc khác, chẳng hạn như minimumCapacity hoặc vehicleTypes.

Xin lưu ý rằng các truy vấn duy nhất được hỗ trợ là về các thuộc tính của xe (ví dụ: attributes.<key> = <value> hoặc attributes.<key1> = <value1> AND attributes.<key2> = <value2>). Số lượng hạn chế tối đa được phép trong một truy vấn bộ lọc là 50.

Ngoài ra, tất cả thuộc tính đều được lưu trữ dưới dạng chuỗi, do đó, phép so sánh duy nhất được hỗ trợ so với các thuộc tính là so sánh chuỗi. Để so sánh với giá trị số hoặc giá trị boolean, các giá trị phải được trích dẫn rõ ràng để được xử lý dưới dạng chuỗi (ví dụ: attributes.<key> = "10" hoặc attributes.<key> = "true").

Nội dung phản hồi

Thông báo phản hồi vehicles.search.

Nếu thành công, phần nội dung phản hồi sẽ chứa dữ liệu có cấu trúc sau:

Biểu diễn dưới dạng JSON
{
  "matches": [
    {
      object (VehicleMatch)
    }
  ]
}
Trường
matches[]

object (VehicleMatch)

Danh sách xe đáp ứng tiêu chí SearchVehiclesRequest, được sắp xếp theo trường SearchVehiclesRequest.order_by.

VehicleAttributeList

Loại dữ liệu danh sách-danh sách cho các thuộc tính của xe.

Biểu diễn dưới dạng JSON
{
  "attributes": [
    {
      object (VehicleAttribute)
    }
  ]
}
Trường
attributes[]

object (VehicleAttribute)

Danh sách các thuộc tính trong tập hợp này.

VehicleMatchOrder

Chỉ định thứ tự của các kết quả trùng khớp về xe trong phản hồi.

Enum
UNKNOWN_VEHICLE_MATCH_ORDER Mặc định, dùng cho đơn đặt hàng trùng khớp xe không xác định hoặc không nhận dạng được.
PICKUP_POINT_ETA Thứ tự tăng dần theo thời gian lái xe đến điểm đón.
PICKUP_POINT_DISTANCE Sắp xếp theo thứ tự tăng dần theo khoảng cách lái xe đến điểm đến lấy hàng.
DROPOFF_POINT_ETA Sắp xếp theo thứ tự tăng dần theo thời gian lái xe đến điểm trả khách. Bạn chỉ có thể sử dụng đơn đặt hàng này nếu điểm trả khách được chỉ định trong yêu cầu.
PICKUP_POINT_STRAIGHT_DISTANCE Thứ tự tăng dần theo khoảng cách theo đường thẳng từ vị trí được báo cáo gần đây nhất của xe đến điểm đón.
COST Thứ tự tăng dần theo chi phí trùng khớp đã định cấu hình. Chi phí trùng khớp được định nghĩa là phép tính có trọng số giữa khoảng cách theo đường thẳng và giờ đến dự kiến. Trọng lượng được đặt theo giá trị mặc định và có thể sửa đổi theo từng khách hàng. Vui lòng liên hệ với nhóm hỗ trợ Google nếu cần sửa đổi các trọng số này cho dự án của bạn.

CurrentTripsPresent

Chỉ định các loại quy định hạn chế đối với các chuyến đi hiện tại của một xe.

Enum
CURRENT_TRIPS_PRESENT_UNSPECIFIED Tình trạng xe có cung cấp chuyến đi chịu sự điều chỉnh của trường includeBackToBack.
NONE Những chiếc xe không có chuyến đi có thể xuất hiện trong kết quả tìm kiếm. Khi dùng giá trị này, includeBackToBack không được là true.
ANY Những phương tiện có tối đa 5 chuyến đi hiện tại và 10 điểm tham chiếu sẽ được đưa vào kết quả tìm kiếm. Khi dùng giá trị này, includeBackToBack không được là true.

VehicleMatch

Chứa thông tin về xe và thông tin ước tính có liên quan cho một chiếc xe khớp với điểm của chuyến đi đang hoạt động của chiếc xe SearchVehiclesRequest.

Biểu diễn dưới dạng 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)
}
Trường
vehicle

object (Vehicle)

Bắt buộc. Một chiếc xe phù hợp với yêu cầu.

vehiclePickupEta

string (Timestamp format)

Thời gian đến dự kiến của xe đến điểm đón được chỉ định trong yêu cầu. Giá trị trống cho biết không tính toán được ETA cho xe. Nếu SearchVehiclesRequest.include_back_to_backtrue và xe này có một chuyến đi đang hoạt động, thì vehiclePickupEta sẽ bao gồm thời gian cần thiết để hoàn tất chuyến đi đang hoạt động hiện tại.

Dấu thời gian ở định dạng "Zulu" RFC3339 UTC, có độ phân giải nano giây và tối đa 9 chữ số thập phân. Ví dụ: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

vehiclePickupDistanceMeters

integer

Khoảng cách từ vị trí hiện tại của xe đến điểm đón khách được chỉ định trong yêu cầu, bao gồm cả mọi điểm đón hoặc trả xe trung gian cho những chuyến đi hiện có. Khoảng cách này bao gồm khoảng cách lái xe (tuyến đường) được tính toán, cộng với khoảng cách theo đường thẳng giữa điểm cuối của hành trình và điểm đón được yêu cầu. (Khoảng cách giữa điểm cuối điều hướng và điểm đón nhận được yêu cầu thường nhỏ.) Giá trị trống cho biết có lỗi khi tính khoảng cách.

vehiclePickupStraightLineDistanceMeters

integer

Bắt buộc. Khoảng cách theo đường thẳng giữa xe và điểm đón được chỉ định trong yêu cầu.

vehicleDropoffEta

string (Timestamp format)

Thời gian dự kiến hoàn tất hành trình của xe đến điểm trả khách được chỉ định trong yêu cầu. Giờ đến dự kiến bao gồm việc dừng tại bất kỳ điểm tham chiếu nào trước dropoffPoint được chỉ định trong yêu cầu. Giá trị sẽ chỉ được điền sẵn khi điểm trả khách được chỉ định trong yêu cầu. Giá trị trống cho biết có lỗi khi tính ETA.

Dấu thời gian ở định dạng "Zulu" RFC3339 UTC, với độ phân giải nano giây và tối đa 9 chữ số phân số. Ví dụ: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

vehiclePickupToDropoffDistanceMeters

integer

Quãng đường lái xe của xe (tính bằng mét) từ điểm đón đến điểm trả khách được chỉ định trong yêu cầu. Khoảng cách này chỉ nằm giữa hai điểm và không bao gồm vị trí của xe hoặc bất kỳ điểm nào khác mà khách hàng phải ghé thăm trước khi xe ghé thăm điểm đón hoặc điểm trả xe. Giá trị này sẽ chỉ được điền khi bạn chỉ định dropoffPoint trong yêu cầu. Giá trị trống cho biết không thể tính khoảng cách từ điểm đến lấy hàng đến điểm trả khách được chỉ định trong yêu cầu.

tripType

enum (TripType)

Bắt buộc. Loại chuyến đi trong yêu cầu được dùng để tính giờ đến dự kiến cho đến điểm đón.

vehicleTripsWaypoints[]

object (Waypoint)

Danh sách các điểm trung gian được sắp xếp dùng để tính toán ETA. Danh sách này bao gồm vị trí của xe, điểm đến lấy hàng của các chuyến đi đang hoạt động cho xe và điểm đến lấy hàng được cung cấp trong yêu cầu. Danh sách trống cho biết không tính toán được thời gian đến dự kiến cho xe.

vehicleMatchType

enum (VehicleMatchType)

Loại kiểu khớp xe.

requestedOrderedBy

enum (VehicleMatchOrder)

Thứ tự yêu cầu sắp xếp xe trùng khớp.

orderedBy

enum (VehicleMatchOrder)

Thứ tự thực tế được sử dụng cho xe này. Thông thường, giá trị này sẽ khớp với trường "orderBy" trong yêu cầu; tuy nhiên, trong một số trường hợp nhất định như lỗi máy chủ nội bộ, bạn có thể sử dụng một phương thức khác (chẳng hạn như PICKUP_POINT_STRAIGHT_DISTANCE).

Waypoint

Mô tả các điểm trung gian dọc theo tuyến đường cho VehicleMatch trong SearchVehiclesResponse. Khái niệm này được biểu thị dưới dạng TripWaypoint trong tất cả các điểm cuối khác.

Biểu diễn dưới dạng JSON
{
  "latLng": {
    object (LatLng)
  },
  "eta": string
}
Trường
latLng

object (LatLng)

Vị trí của điểm trung gian này.

eta

string (Timestamp format)

Thời gian ước tính mà xe sẽ đến điểm trung gian này.

Dấu thời gian ở định dạng "Zulu" RFC3339 UTC, với độ phân giải nano giây và tối đa 9 chữ số phân số. Ví dụ: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

VehicleMatchType

Loại xe trùng khớp.

Enum
UNKNOWN Kiểu xe không xác định
EXCLUSIVE Chiếc xe này hiện chưa được chỉ định chuyến đi nào và có thể đi đến điểm đón.
BACK_TO_BACK Xe hiện được chỉ định cho một chuyến đi nhưng có thể đi đến điểm đón sau khi bạn hoàn tất chuyến đi đang diễn ra. Tính toán khoảng cách và thời gian đến dự kiến sẽ tính đến chuyến đi hiện tại.
CARPOOL Xe có đủ sức chứa cho một chuyến đi chung.
CARPOOL_BACK_TO_BACK Xe sẽ kết thúc chuyến đi hiện tại đang diễn ra trước khi đi đến điểm đón. Tính toán khoảng cách và thời gian đến dự kiến sẽ tính đến chuyến đi hiện tại.