Method: providers.vehicles.search

Trả về danh sách xe phù hợp với các lựa chọn của 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 Google Cloud có tài khoản dịch vụ thực hiện cuộc gọi này.

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 đề của yêu cầu Fleet Engine tiêu chuẩn.

pickupPoint

object (TerminalLocation)

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

dropoffPoint

object (TerminalLocation)

Vị trí trả xe dự kiến của khách hàng. Đây là trường 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 đón khách. Hệ thống sẽ chỉ trả lại những xe trong phạm vi 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. Chỉ định số lượng xe tối đa cần trả lại. Giá trị phải nằm trong khoảng từ 1 đến 50 (bao gồm).

minimumCapacity

integer

Bắt buộc. Xác định số lượng hành khách được cân nhắc cho một chuyến đi. Giá trị phải lớn hơn hoặc bằng 1. Trình điều khiển không được xem xét trong giá trị sức chứa.

tripTypes[]

enum (TripType)

Bắt buộc. Đại diện cho loại chuyến đi đề xuất. Phải bao gồm chính xác một loại. UNKNOWN_TRIP_TYPE là không được phép. Giới hạn tìm kiếm chỉ cho những xe có thể hỗ trợ loại chuyến đi đó.

maximumStaleness

string (Duration format)

Giới hạn tìm kiếm ở những xe đã gửi thông tin cập nhật vị trí cho Fleet Engine trong khoảng thời gian quy định. Những phương tiện cố định vẫn đang truyền vị trí của chúng không bị coi là lỗi thời. Nếu bạn không đặt trường này, máy chủ sẽ sử dụng giá trị mặc định là 5 phút.

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

vehicleTypes[]

object (VehicleType)

Bắt buộc. Giới hạn tìm kiếm trong những 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 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 từ 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 các danh sách. Khi kết hợp, hai trường sẽ cho phép cấu thành 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ỉ tìm kiếm những chiếc xe có các thuộc tính đã chỉ định. Trường này là toán tử liên kết/AND. Chỉ cho phép tối đa 50 requiredAttributes. Thuộc tính này khớp với số lượng thuộc tính tối đa được phép trên xe.

requiredOneOfAttributes[]

object (VehicleAttributeList)

Chỉ tìm kiếm 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 chiếc xe phải khớp với ít nhất một trong các thuộc tính. Trường này là một phép toán phân ly/HOẶC bao gồm trong mỗi VehicleAttributeList và là một phép toán tử/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 thông báo để chấp nhận danh sách các 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
  ...)
)

Chỉ tìm kiếm những xe có tất cả các thuộc tính trong một VehicleAttributeList. Trong mỗi danh sách, một chiếc xe phải phù hợp với tất cả các thuộc tính. Trường này là một toán tử liên kết/AND trong mỗi VehicleAttributeList và bao gồm toán tử phân ly/OR (hoặc) 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

Cột này cho biết những phương tiện có một chuyến đi đang hoạt động có đủ điều kiện cho nội dung tìm kiếm này hay không. Trường này chỉ được dùng khi chưa chỉ định currentTripsPresent. Nếu bạn không chỉ định currentTripsPresent và trường này là false, thì những chiếc xe có chuyến đi được chỉ định sẽ bị loại trừ khỏi kết quả tìm kiếm. Nếu bạn không chỉ định currentTripsPresent và trường này là true, thì kết quả tìm kiếm có thể bao gồm cả những phương tiện có một chuyến đi đang hoạt động có trạng thái là ENROUTE_TO_DROPOFF. Khi currentTripsPresent được chỉ định, 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)

Cột này cho biết những phương tiện có chuyến đi đang hoạt động có đủ điều kiện xuất hiện trong nội dung tìm kiếm này hay không. Thuộc tính này phải được thiết lập thành giá trị khác CURRENT_TRIPS_PRESENT_UNSPECIFIED nếu tripType bao gồm SHARED.

filter

string

Không bắt buộc. Một cụm từ tìm kiếm để áp dụng bộ lọc khi tìm kiếm xe. Hãy truy cập vào http://aip.dev/160 để xem các 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 một giá trị không trống được chỉ định ở đây thì các trường sau đây phải trống: requiredAttributes, requiredOneOfAttributesrequired_one_of_attributes_sets.

Bộ lọc này hoạt động dưới dạng 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 những cụm từ tìm kiếm duy nhất được hỗ trợ là về thuộc tính xe (ví dụ: attributes.<key> = <value> hoặc attributes.<key1> = <value1> AND attributes.<key2> = <value2>). Số lượng quy định 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 các giá trị số hoặc boolean, các giá trị phải được trích dẫn rõ ràng để được coi là chuỗi (ví dụ: attributes.<key> = "10" hoặc attributes.<key> = "true").

Nội dung phản hồi

vehicles.search tin nhắn phản hồi.

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 các tiêu chí của SearchVehiclesRequest, sắp xếp theo trường SearchVehiclesRequest.order_by.

VehicleAttributeList

Loại dữ liệu trong 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 bộ sưu tập này.

VehicleMatchOrder

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

Enum
UNKNOWN_VEHICLE_MATCH_ORDER Mặc định, dùng cho đơn đặt hàng khớp xe không xác định hoặc không nhận dạng được.
PICKUP_POINT_ETA Đơn đặt hàng tăng dần theo thời gian lái xe đến điểm đón.
PICKUP_POINT_DISTANCE Thứ tự tăng dần theo khoảng cách lái xe đến điểm đón.
DROPOFF_POINT_ETA Tăng dần thứ tự theo thời gian lái xe đến điểm trả xe. Đơn đặt hàng này chỉ có thể được sử dụng nếu điểm bỏ ngang được chỉ định trong yêu cầu.
PICKUP_POINT_STRAIGHT_DISTANCE Đơn đặt hàng 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í so khớp đã thiết lập. Chi phí phù hợp được định nghĩa là phép tính có trọng số giữa khoảng cách đường thẳng và ETA. Trọng số được đặt với 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 bạn cần sửa đổi các trọng số này cho dự án của mình.

CurrentTripsPresent

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

Enum
CURRENT_TRIPS_PRESENT_UNSPECIFIED Phạm vi cung cấp phương tiện có các chuyến đi hiện tạ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 Các xe có tối đa 5 chuyến đi hiện tại và 10 điểm tham chiếu đượ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à các thông tin ước tính liên quan cho một chiếc xe phù hợp với các điểm của các 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 tới điểm đón được chỉ định trong yêu cầu. Giá trị trống cho biết xe không tính được thời gian đến dự kiến. Nếu giá trị 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 hiện tại.

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".

vehiclePickupDistanceMeters

integer

Khoảng cách từ vị trí hiện tại của xe đến điểm đón được chỉ định trong yêu cầu, bao gồm cả các điểm đón khách hoặc trả khách trung gian đối với các chuyến đi hiện tại. Khoảng cách này bao gồm quãng đường lái xe (tuyến đường) đã tính toán, cùng với khoảng cách theo đường thẳng giữa điểm cuối của lộ 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 đượ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 lái xe hoàn chỉnh của xe đến điểm trả khách được chỉ định trong yêu cầu. ETA 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ị này sẽ chỉ được điền khi điểm bỏ ngang được chỉ định trong yêu cầu. Giá trị trống cho biết đã xảy ra lỗi khi tính thời gian đến dự kiến.

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ả xe được chỉ định trong yêu cầu. Khoảng cách chỉ 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à bạn phải ghé thăm trước khi xe đến điểm đón hoặc điểm trả xe. Giá trị này sẽ chỉ được điền khi dropoffPoint được chỉ định trong yêu cầu. Giá trị trống cho biết không tính được khoảng cách từ điểm đến lấy hàng đến điểm trả xe được chỉ định trong yêu cầu.

tripType

enum (TripType)

Bắt buộc. Loại chuyến đi của yêu cầu dùng để tính thời gian đến dự kiến tới điểm đón khách.

vehicleTripsWaypoints[]

object (Waypoint)

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

vehicleMatchType

enum (VehicleMatchType)

Loại kết quả trùng khớp với xe.

requestedOrderedBy

enum (VehicleMatchOrder)

Đơn đặt hàng đã yêu cầu để sắp xếp các kết quả trùng khớp với xe.

orderedBy

enum (VehicleMatchOrder)

Đơn đặt hàng thực tế được dùng cho xe này. Thông thường, giá trị này sẽ khớp với trường "orderBy" từ 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ộ, 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 một tuyến 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 tham chiếu này.

eta

string (Timestamp format)

Thời gian dự kiến mà xe sẽ đến điểm tham chiếu 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 khớp xe không xác định
EXCLUSIVE Xe này hiện chưa được chỉ định chuyến đi và có thể đi tới điểm đón.
BACK_TO_BACK Xe hiện được chỉ định cho một chuyến đi, nhưng có thể tiếp tục đến điểm đón sau khi hoàn tất chuyến đi đang diễn ra. Việc tính toán thời gian đến dự kiến và khoảng cách sẽ có tính đến chuyến đi hiện tại.
CARPOOL Xe có đủ chỗ 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 hoạt động trước khi đi đến điểm đón. Việc tính toán thời gian đến dự kiến và khoảng cách sẽ có tính đến chuyến đi hiện tại.