Package maps.fleetengine.delivery.v1

索引

DeliveryService

最后一公里配送服务。

BatchCreateTasks

rpc BatchCreateTasks(BatchCreateTasksRequest) returns (BatchCreateTasksResponse)

创建并返回一批新的 Task 对象。

CreateDeliveryVehicle

rpc CreateDeliveryVehicle(CreateDeliveryVehicleRequest) returns (DeliveryVehicle)

创建并返回新的 DeliveryVehicle

CreateTask

rpc CreateTask(CreateTaskRequest) returns (Task)

创建并返回新的 Task 对象。

DeleteDeliveryVehicle

rpc DeleteDeliveryVehicle(DeleteDeliveryVehicleRequest) returns (Empty)

从 Fleet Engine 中删除 DeliveryVehicle。

如果 DeliveryVehicle 有分配给它的 OPEN 任务,则返回 FAILED_PRECONDITION。

DeleteTask

rpc DeleteTask(DeleteTaskRequest) returns (Empty)

删除单个任务。

如果任务处于 OPEN 状态且已分配给 DeliveryVehicle,则返回 FAILED_PRECONDITION。

GetDeliveryVehicle

rpc GetDeliveryVehicle(GetDeliveryVehicleRequest) returns (DeliveryVehicle)

返回指定的 DeliveryVehicle 实例。

GetTask

rpc GetTask(GetTaskRequest) returns (Task)

获取有关 Task 的信息。

GetTaskTrackingInfo

rpc GetTaskTrackingInfo(GetTaskTrackingInfoRequest) returns (TaskTrackingInfo)

返回指定的 TaskTrackingInfo 实例。

ListDeliveryVehicles

rpc ListDeliveryVehicles(ListDeliveryVehiclesRequest) returns (ListDeliveryVehiclesResponse)

获取符合指定过滤条件的所有 DeliveryVehicle

ListTasks

rpc ListTasks(ListTasksRequest) returns (ListTasksResponse)

获取符合指定过滤条件的所有 Task

UpdateDeliveryVehicle

rpc UpdateDeliveryVehicle(UpdateDeliveryVehicleRequest) returns (DeliveryVehicle)

将更新后的 DeliveryVehicle 数据写入 Fleet Engine,并将 Tasks 分配给 DeliveryVehicle。您无法更新 DeliveryVehicle 的名称。您可以更新 remaining_vehicle_journey_segments,但它必须包含所有 VehicleJourneySegment 才能保留在 DeliveryVehicle 上。系统会从 remaining_vehicle_journey_segments 中检索 task_id,并将其对应的 Tasks 分配给 DeliveryVehicle(如果尚未分配)。

UpdateTask

rpc UpdateTask(UpdateTaskRequest) returns (Task)

更新 Task 数据。

BatchCreateTasksRequest

BatchCreateTask 请求消息。

字段
header

DeliveryRequestHeader

可选。标准 Delivery API 请求标头。注意:如果您设置了此字段,则 CreateTaskRequest 消息中的标头字段必须为空,或者必须与此字段匹配。

parent

string

必需。所有任务共用的父资源。此值必须采用 providers/{provider} 格式。provider 必须是 Google Cloud 项目 ID。例如 sample-cloud-projectCreateTaskRequest 消息中的父级字段必须为空,或者必须与此字段匹配。

requests[]

CreateTaskRequest

必需。指定要创建的资源的请求消息。注意:您最多可以批量创建 500 个任务。

BatchCreateTasksResponse

BatchCreateTask 响应消息。

字段
tasks[]

Task

创建的任务。

CreateDeliveryVehicleRequest

CreateDeliveryVehicle 请求消息。

字段
header

DeliveryRequestHeader

可选。标准 Delivery API 请求标头。

parent

string

必需。必须采用 providers/{provider} 格式。提供方必须是 Google Cloud 项目 ID。例如 sample-cloud-project

delivery_vehicle_id

string

必需。配送车辆 ID 必须是唯一的,并且受以下限制:

  • 必须是有效的 Unicode 字符串。
  • 长度上限为 64 个字符。
  • 根据 Unicode 标准化形式 C 进行标准化。
  • 不得包含以下任何 ASCII 字符:“/”“:”“?”“,”或“#”。
delivery_vehicle

DeliveryVehicle

必需。要创建的 DeliveryVehicle 实体。创建新的配送车辆时,您可以设置以下可选字段:

  • 类型
  • last_location
  • 属性

注意:系统会忽略 DeliveryVehicle 的 name 字段。不得设置所有其他 DeliveryVehicle 字段;否则,系统会返回错误。

CreateTaskRequest

CreateTask 请求消息。

字段
header

DeliveryRequestHeader

可选。标准 Delivery API 请求标头。

parent

string

必需。必须采用 providers/{provider} 格式。provider 必须是 Google Cloud 项目 ID。例如 sample-cloud-project

task_id

string

必需。任务 ID 必须是唯一的,但不能是货件跟踪 ID。如需存储货件跟踪 ID,请使用 tracking_id 字段。请注意,多个任务可以具有相同的 tracking_id。任务 ID 受限于以下限制:

  • 必须是有效的 Unicode 字符串。
  • 长度上限为 64 个字符。
  • 根据 Unicode 标准化形式 C 进行标准化。
  • 不得包含以下任何 ASCII 字符:“/”“:”“?”“,”或“#”。
task

Task

必需。要创建的任务实体。创建任务时,必须填写以下字段:

  • type
  • state(必须设置为 OPEN
  • tracking_id(不得为 UNAVAILABLESCHEDULED_STOP 任务设置,但对于所有其他任务类型,此属性为必需属性)
  • planned_location(对于 UNAVAILABLE 任务是可选的)
  • task_duration

以下字段可选择性地设置:

  • target_time_window
  • task_tracking_view_config
  • attributes

注意:系统会忽略任务的 name 字段。不得设置所有其他 Task 字段;否则,系统会返回错误。

DeleteDeliveryVehicleRequest

DeleteDeliveryVehicle 请求消息。

字段
header

DeliveryRequestHeader

可选。标准 Delivery API 请求标头。

name

string

必需。必须采用 providers/{provider}/deliveryVehicles/{delivery_vehicle} 格式。provider 必须是 Google Cloud 项目 ID。例如 sample-cloud-project

DeleteTaskRequest

DeleteTask 请求消息。

字段
header

DeliveryRequestHeader

可选。标准 Delivery API 请求标头。

name

string

必需。必须采用 providers/{provider}/tasks/{task} 格式。provider 必须是 Google Cloud 项目 ID。例如 sample-cloud-project

DeliveryRequestHeader

RequestHeader 包含所有 Delivery RPC 请求共有的字段。

字段
language_code

string

BCP-47 语言代码,例如 en-US 或 sr-Latn。如需了解详情,请参阅 http://www.unicode.org/reports/tr35/#Unicode_locale_identifier。如果未指定,则响应可能采用任何语言,但如果存在英文名称,则优先采用英文。字段值示例:en-US

region_code

string

必需。发起请求的地区的 CLDR 地区代码。字段值示例:US

sdk_version

string

调用 SDK 的版本(如适用)。版本格式为“major.minor.patch”,例如:1.1.2

os_version

string

运行调用 SDK 的操作系统的版本。字段值示例:4.4.112.1

device_model

string

运行调用 SDK 的设备的型号。字段值示例:iPhone12,1SM-G920F

sdk_type

SdkType

发送请求的 SDK 的类型。

maps_sdk_version

string

调用 SDK 所依赖的 MapSDK 版本(如果适用)。版本格式为“major.minor.patch”,例如:5.2.1

nav_sdk_version

string

调用 SDK 所依赖的 NavSDK 版本(如果适用)。版本格式为“major.minor.patch”,例如:2.1.0

platform

Platform

调用 SDK 的平台。

manufacturer

string

调用 SDK 的 Android 设备的制造商,仅适用于 Android SDK。字段值示例:Samsung

android_api_level

int32

调用 SDK 的 Android API 级别,仅适用于 Android SDK。字段值示例:23

trace_id

string

可选 ID,可提供此 ID 以便出于日志记录目的来标识请求。

平台

调用 SDK 的平台。

枚举
PLATFORM_UNSPECIFIED 默认值。如果省略平台,则使用此值。
ANDROID 请求来自 Android。
IOS 请求来自 iOS。
WEB 请求来自网络。

SdkType

可能的 SDK 类型。

枚举
SDK_TYPE_UNSPECIFIED 默认值。如果省略 sdk_type,则使用此值。
CONSUMER 调用 SDK 是 Consumer。
DRIVER 调用 SDK 为 Driver。
JAVASCRIPT 调用 SDK 是 JavaScript。

DeliveryVehicle

DeliveryVehicle 消息。配送车辆将货物从配送中心运送到配送地点,以及从取货地点运送到配送中心。在某些情况下,送货车辆还会直接将货物从取货地点运送到送货地点。

注意:gRPC 和 REST API 使用不同的字段命名惯例。例如,gRPC API 中的 DeliveryVehicle.current_route_segment 字段和 REST API 中的 DeliveryVehicle.currentRouteSegment 字段是指同一字段。

字段
name

string

相应配送车辆的唯一名称。格式为 providers/{provider}/deliveryVehicles/{vehicle}

last_location

DeliveryVehicleLocation

送货车辆上次报告的位置。

past_locations[]

DeliveryVehicleLocation

仅限输入。相应送货车辆过去曾到过但尚未向 Fleet Engine 报告的位置。此功能用于在 UpdateDeliveryVehicleRequest 中记录之前无法发送到服务器的位置。这种情况通常会在送货车辆没有网络连接时发生。

navigation_status

DeliveryVehicleNavigationStatus

配送车辆的导航状态。

current_route_segment

bytes

编码后的多段线,用于指定导航建议前往下一个途经点的路线。当到达或经过某个经停点以及导航重新规划路线时,司机应用会更新此信息。这些 LatLng 会在 Task.journey_sharing_info.remaining_vehicle_journey_segments[0].path (gRPC) 或 Task.journeySharingInfo.remainingVehicleJourneySegments[0].path (REST) 中针对分配给车辆的所有有效任务返回。

在以下几种情况下,此字段可能不会用于填充 Task.journey_sharing_info.remaining_vehicle_journey_segments[0].path (gRPC) 或 Task.journeySharingInfo.remainingVehicleJourneySegments[0].path (REST):

  • current_route_segment 的端点与 DeliveryVehicle.remaining_vehicle_journey_segments[0].stop (gRPC) 或 DeliveryVehicle.remainingVehicleJourneySegments[0].stop (REST) 不匹配。

  • 驱动程序应用最近未更新其位置信息,因此相应字段的上次更新值可能已过时。

  • 司机应用最近更新了位置信息,但 current_route_segment 已过时,指向的是之前的车辆停靠点。

在这些情况下,Fleet Engine 会使用从最近经过的 VehicleStop 到即将到来的 VehicleStop 的路线填充此字段,以确保此字段的使用者能够获得有关送货车辆当前路径的最佳可用信息。

current_route_segment_end_point

LatLng

current_route_segment 结束的位置。此字段目前不会由司机应用填充,但您可以在 UpdateDeliveryVehicle 调用中提供此字段。它是即将到来的车辆停靠站的 LatLng,或者是 current_route_segment 的最后一个 LatLng。然后,Fleet Engine 会尽力插值到实际的 VehicleStop

如果 current_route_segment 字段为空,则在 UpdateDeliveryVehicle 调用中会忽略此字段。

remaining_distance_meters

Int32Value

current_route_segment 的剩余行驶距离。Driver 应用通常会提供此字段,但在某些情况下,Fleet Engine 会替换应用发送的值。如需了解详情,请参阅 DeliveryVehicle.current_route_segment。对于分配给送货车辆的所有有效 Task,此字段都会在 Task.remaining_vehicle_journey_segments[0].driving_distance_meters (gRPC) 或 Task.remainingVehicleJourneySegments[0].drivingDistanceMeters (REST) 中返回。

如果 current_route_segment 字段为空,Fleet Engine 会忽略 UpdateDeliveryVehicleRequest 中的此字段。

remaining_duration

Duration

current_route_segment 的剩余驾驶时间。Driver 应用通常会提供此字段,但在某些情况下,Fleet Engine 会替换应用发送的值。如需了解详情,请参阅 DeliveryVehicle.current_route_segment。此字段在 Task.remaining_vehicle_journey_segments[0].driving_duration (gRPC) 或 Task.remainingVehicleJourneySegments[0].drivingDuration (REST) 中针对分配给配送车辆的所有有效任务返回。

如果 current_route_segment 字段为空,Fleet Engine 会忽略 UpdateDeliveryVehicleRequest 中的此字段。

remaining_vehicle_journey_segments[]

VehicleJourneySegment

分配给相应送货车辆的行程段,从车辆最近报告的位置开始。在 ListDeliveryVehicles 的响应中,系统不会填充此字段。

attributes[]

DeliveryVehicleAttribute

自定义送货车辆属性的列表。送货车辆最多可以有 100 个属性,并且每个属性都必须具有唯一的键。

type

DeliveryVehicleType

相应送货车辆的类型。如果未设置,则默认为 AUTO

DeliveryVehicleType

配送车辆的类型。

枚举
DELIVERY_VEHICLE_TYPE_UNSPECIFIED 该值未使用。
AUTO 汽车。
TWO_WHEELER 摩托车、助力车或其他双轮车辆
BICYCLE 人力驱动的交通工具。
PEDESTRIAN 一种人类运输者,通常步行或跑步,沿着人行道移动。

DeliveryVehicleAttribute

将车辆属性描述为键值对。“键:值”字符串的长度不得超过 256 个字符。

字段
key

string

属性的键。

value

string

属性的值。

联合字段 delivery_vehicle_attribute_value。属性的值,可以是字符串、布尔值或双精度类型。delivery_vehicle_attribute_value 只能是下列其中一项:
string_value

string

字符串类型的属性值。

注意:此字段与 value 字段完全相同,但后者最终将被弃用。对于创建或更新方法,可以使用任一字段,但强烈建议使用 string_value。如果同时设置了 string_valuevalue,它们必须完全相同,否则系统会抛出错误。这两个字段都会填充在响应中。

bool_value

bool

布尔值类型的属性值。

number_value

double

双精度类型的属性值。

DeliveryVehicleLocation

车辆在某个时间点的位置、速度和行驶方向。

字段
location

LatLng

车辆的位置。当位置信息发送到 Fleet Engine 时,车辆的位置是 GPS 位置。当您在响应中收到此值时,车辆的位置信息可以是 GPS 位置信息、补充位置信息或其他一些估计的位置信息。来源在 location_sensor 中指定。

horizontal_accuracy
(deprecated)

DoubleValue

已弃用:请改用 latlng_accuracy

latlng_accuracy

DoubleValue

以半径表示的精确度为 location 米。

heading

Int32Value

车辆行驶方向(以度为单位)。0 表示北。有效范围为 [0,360)。

bearing_accuracy
(deprecated)

DoubleValue

已弃用:请改用 heading_accuracy

heading_accuracy

DoubleValue

精确度为 heading 度。

altitude

DoubleValue

海拔高度(以米为单位,高于 WGS84)。

vertical_accuracy
(deprecated)

DoubleValue

已弃用:请改用 altitude_accuracy

altitude_accuracy

DoubleValue

altitude 的精度,以米为单位。

speed_kmph
(deprecated)

Int32Value

车辆速度,单位为千米/小时。已弃用:请改用 speed

speed

DoubleValue

车辆速度(以米/秒为单位)

speed_accuracy

DoubleValue

speed 的精确度,以米/秒为单位。

update_time

Timestamp

传感器根据其时钟报告 location 的时间。

server_time

Timestamp

仅限输出。服务器接收到位置信息的时间。

location_sensor

DeliveryVehicleLocationSensor

位置数据提供方(例如 GPS)。

is_road_snapped

BoolValue

location 是否贴合道路。

is_gps_sensor_enabled

BoolValue

仅限输入。指示移动设备上是否已启用 GPS 传感器。

time_since_update

Int32Value

仅限输入。自首次将相应位置信息发送到服务器以来经过的时间(以秒为单位)。对于首次更新,此值为零。如果时间未知(例如,当应用重启时),此值会重置为零。

num_stale_updates
(deprecated)

Int32Value

仅限输入。已弃用:现在使用其他信号来确定位置是否过时。

raw_location

LatLng

原始车辆位置(未经道路贴合器处理)。

raw_location_time

Timestamp

与原始位置信息相关联的时间戳。

raw_location_sensor

DeliveryVehicleLocationSensor

原始位置信息的来源。默认为 GPS

raw_location_accuracy

DoubleValue

以米为单位的半径,精确度为 raw_location

flp_location

LatLng

来自 Android 的一体化位置信息提供程序的位置信息。

flp_update_time

Timestamp

更新 flp_location 的时间戳

flp_latlng_accuracy_meters

DoubleValue

以半径表示的精确度为 flp_location 米。

flp_heading_degrees

Int32Value

车辆行驶方向(以度为单位),由融合位置信息提供程序确定。0 表示北。有效范围为 [0,360)。

supplemental_location

LatLng

集成应用提供的补充位置信息。

supplemental_location_time

Timestamp

与补充位置信息相关联的时间戳。

supplemental_location_sensor

DeliveryVehicleLocationSensor

补充位置信息的来源。默认为 CUSTOMER_SUPPLIED_LOCATION

supplemental_location_accuracy

DoubleValue

以米为单位的半径,精确度为 supplemental_location

road_snapped
(deprecated)

bool

已弃用:请改用 is_road_snapped

DeliveryVehicleLocationSensor

用于确定位置信息的传感器或方法。

枚举
UNKNOWN_SENSOR 传感器未指定或未知。
GPS GPS 或辅助 GPS。
NETWORK 辅助 GPS、手机基站 ID 或 Wi-Fi 接入点。
PASSIVE 手机信号塔 ID 或 WiFi 接入点。
ROAD_SNAPPED_LOCATION_PROVIDER 移动设备确定的最可能的道路位置。
CUSTOMER_SUPPLIED_LOCATION 客户从独立来源提供的营业地点。通常,此值用于从运行 Driver SDK 的移动设备以外的来源提供的位置。如果原始来源由其他枚举值之一描述,请使用该值。标记为 CUSTOMER_SUPPLIED_LOCATION 的位置通常通过 DeliveryVehicle 的 last_location.supplemental_location_sensor 提供。
FLEET_ENGINE_LOCATION Fleet Engine 根据其可用的信号计算出的位置。仅限输出。如果在请求中收到此值,系统会拒绝该请求。
FUSED_LOCATION_PROVIDER Android 的 Fused Location Provider。
CORE_LOCATION Apple 操作系统上的位置信息提供程序。

DeliveryVehicleNavigationStatus

车辆的导航状态。

枚举
UNKNOWN_NAVIGATION_STATUS 未指定的导航状态。
NO_GUIDANCE 司机应用的导航处于 FREE_NAV 模式。
ENROUTE_TO_DESTINATION 精细导航可用,司机应用导航已进入 GUIDED_NAV 模式。
OFF_ROUTE 车辆已偏离建议的路线。
ARRIVED_AT_DESTINATION 车辆位于目的地附近约 50 米范围内。

GetDeliveryVehicleRequest

GetDeliveryVehicle 请求消息。

字段
header

DeliveryRequestHeader

可选。标准 Delivery API 请求标头。

name

string

必需。必须采用 providers/{provider}/deliveryVehicles/{delivery_vehicle} 格式。provider 必须是 Google Cloud 项目 ID。例如 sample-cloud-project

GetTaskRequest

GetTask 请求消息。

字段
header

DeliveryRequestHeader

可选。标准 Delivery API 请求标头。

name

string

必需。必须采用 providers/{provider}/tasks/{task} 格式。provider 必须是 Google Cloud 项目 ID。例如 sample-cloud-project

GetTaskTrackingInfoRequest

GetTaskTrackingInfoRequest 请求消息。

字段
header

DeliveryRequestHeader

可选。标准 Delivery API 请求标头。

name

string

必需。必须采用 providers/{provider}/taskTrackingInfo/{tracking_id} 格式。provider 必须是 Google Cloud 项目 ID,tracking_id 必须是与任务关联的跟踪 ID。例如,名称可以是 providers/sample-cloud-project/taskTrackingInfo/sample-tracking-id

ListDeliveryVehiclesRequest

ListDeliveryVehicles 请求消息。

字段
header

DeliveryRequestHeader

可选。标准 Delivery API 请求标头。

parent

string

必需。必须采用 providers/{provider} 格式。provider 必须是 Google Cloud 项目 ID。例如 sample-cloud-project

page_size

int32

可选。要返回的车辆数量上限。服务返回的优惠的数量可能小于此值。如果您未指定此数字,则服务器将决定要返回的结果数。

page_token

string

可选。从之前的 ListDeliveryVehicles 调用接收的页面令牌。您必须提供此令牌才能检索后续页面。

进行分页时,提供给 ListDeliveryVehicles 的所有其他参数必须与提供页面令牌的调用匹配。

filter

string

可选。列出送货车辆时要应用的过滤查询。如需查看过滤条件语法示例,请参阅 http://aip.dev/160。如果您未指定值,或者为过滤条件指定了空字符串,则系统会返回所有配送方式。

请注意,对于 ListDeliveryVehicles,唯一支持的查询是针对车辆属性的查询(例如 attributes.<key> = <value>attributes.<key1> = <value1> AND attributes.<key2> = <value2>)。此外,所有属性都以字符串形式存储,因此唯一支持的属性比较是字符串比较。为了与数字或布尔值进行比较,必须明确引用这些值,以便将其视为字符串(例如 attributes.<key> = "10"attributes.<key> = "true")。

过滤查询中允许的限制数量上限为 50。限制是查询中形如 attribute.<KEY> <COMPARATOR> <VALUE> 的一部分,例如 attributes.foo = bar 就是一个限制。

viewport

Viewport

可选。一种过滤器,用于将返回的车辆限制为最后一次已知位置位于视口定义的矩形区域内的车辆。

ListDeliveryVehiclesResponse

ListDeliveryVehicles 响应消息。

字段
delivery_vehicles[]

DeliveryVehicle

满足所请求过滤条件的一组送货车辆。如果未指定任何过滤条件,则请求会返回所有送货车辆。成功的响应也可以为空。空响应表示未找到符合所请求过滤条件的送货车辆。

next_page_token

string

您可以在 ListDeliveryVehiclesRequest 中传递此令牌,以继续列出结果。当返回所有结果时,响应中不会包含此字段,或者此字段将为空字符串。

total_size

int64

符合请求条件的所有配送车辆的总数。

ListTasksRequest

ListTasks 请求消息。

字段
header

DeliveryRequestHeader

可选。标准 Delivery API 请求标头。

parent

string

必需。必须采用 providers/{provider} 格式。provider 必须是 Google Cloud 项目 ID。例如 sample-cloud-project

page_size

int32

可选。要返回的任务数量上限。服务返回的值可能小于此值。如果您未指定此值,则服务器将决定要返回的结果数。

page_token

string

可选。从之前的 ListTasks 调用接收的页面令牌。您可以提供此令牌来检索后续页面。

进行分页时,提供给 ListTasks 的所有其他参数必须与提供页面令牌的调用匹配。

filter

string

可选。列出任务时要应用的过滤查询。如需查看过滤条件语法示例,请参阅 http://aip.dev/160。如果您未指定值,或者按空字符串进行过滤,则系统会返回所有任务。如需了解可用于过滤的任务属性,请参阅列出任务

ListTasksResponse

ListTasks 响应,其中包含满足 ListTasksRequest 中过滤条件的一组任务。

字段
tasks[]

Task

满足所请求过滤条件的一组任务。如果未指定任何过滤条件,请求会返回所有任务。成功的响应也可以为空。空响应表示未找到符合所请求过滤条件的任务。

next_page_token

string

ListTasksRequest 中传递此令牌,以继续列出结果。如果已返回所有结果,则此字段为空字符串,或者不显示在响应中。

total_size

int64

符合请求条件的所有任务的总数(包括所有页面)。

LocationInfo

具有任何其他标识符的位置。

字段
point

LatLng

相应位置的坐标。必须将 pointplace 指定为输入。如果同时指定了这两个参数,则 point 将用于路由,而 place 将用于元数据。如果仅指定 place 作为输入,系统将根据 place 计算 point 并将其包含在输出中。

place

string

表示相应位置的地点资源名称。格式为 places/{place_id}。必须将 pointplace 指定为输入。如果同时指定了这两个参数,则 point 将用于路由,而 place 将用于元数据。只有当输入中包含 place 时,输出中才会包含 place,这意味着不会执行从 LatLngplace 的查找。

这是一项实验性功能。

point_location_source

PointSource

仅限输出。latlng point 字段的来源。这是实验性功能的一部分。

PointSource

表示 LatLng 的来源。

枚举
POINT_SOURCE_UNSPECIFIED 未指定点源。
POINT_SOURCE_DEVELOPER_PROVIDED LatLng 由开发者明确提供。
POINT_SOURCE_CALCULATED_FROM_PLACE LatLng 是根据所提供的地点计算得出的。

任务

Delivery API 中的 Task 表示要跟踪的单个操作。一般来说,与货件相关的任务和休息任务之间存在区别。一个货件可以关联多个任务。例如,可以有一个任务用于取货,另一个任务用于送货或转运。此外,给定货件的不同任务可以由不同的车辆处理。例如,一辆车可以负责取货,将货物运送到枢纽站,而另一辆车则将同一批货物从枢纽站运送到送货地点。

注意:gRPC 和 REST API 使用不同的字段命名惯例。例如,gRPC API 中的 Task.journey_sharing_info 字段和 REST API 中的 Task.journeySharingInfo 字段是指同一字段。

字段
name

string

必须采用 providers/{provider}/tasks/{task} 格式。

type

Type

必需。不可变。定义任务的类型。例如,中断或发货。

state

State

必需。任务的当前执行状态。

task_outcome

TaskOutcome

任务的结果。

task_outcome_time

Timestamp

时间戳,用于指示提供方何时设置了 Task 的结果。

task_outcome_location

LocationInfo

设置 Task 结果的位置。此值会作为 UpdateTask 的一部分进行更新。如果提供方未明确更新此值,Fleet Engine 会默认使用上次已知的车辆位置(即原始位置)填充此值。

task_outcome_location_source

TaskOutcomeLocationSource

指明 task_outcome_location 的值来自何处。

tracking_id

string

不可变。此字段有助于存储 ID,从而避免使用复杂的映射。您无法为类型为 UNAVAILABLESCHEDULED_STOP 的任务设置 tracking_id。这些 ID 受以下限制的约束:

  • 必须是有效的 Unicode 字符串。
  • 长度上限为 64 个字符。
  • 根据 Unicode 标准化形式 C 进行标准化。
  • 不得包含以下任何 ASCII 字符:“/”“:”“?”“,”或“#”。
delivery_vehicle_id

string

仅限输出。执行相应任务的车辆的 ID。配送车辆 ID 存在以下限制:

  • 必须是有效的 Unicode 字符串。
  • 长度上限为 64 个字符。
  • 根据 Unicode 标准化形式 C 进行标准化。
  • 不得包含以下任何 ASCII 字符:“/”“:”“?”“,”或“#”。
planned_location

LocationInfo

不可变。任务的完成地点。对于 UNAVAILABLE 任务,此属性为可选属性,但对于所有其他任务,此属性为必需属性。

task_duration

Duration

必需。不可变。在此位置执行任务所需的时间。

target_time_window

TimeWindow

任务应完成的时间窗口。

journey_sharing_info

JourneySharingInfo

仅限输出。行程分享专用字段。当状态为 CLOSED 时,不填充。

task_tracking_view_config

TaskTrackingViewConfig

任务跟踪的配置,用于指定在哪些情况下哪些数据元素对最终用户可见。

attributes[]

TaskAttribute

自定义任务属性的列表。每个属性都必须具有唯一的键。

JourneySharingInfo

行程分享特定字段。

字段
remaining_vehicle_journey_segments[]

VehicleJourneySegment

分配的车辆在完成此任务之前将停靠的站点的跟踪信息。请注意,此列表可能包含其他任务中的经停点。

第一个细分 Task.journey_sharing_info.remaining_vehicle_journey_segments[0] (gRPC) 或 Task.journeySharingInfo.remainingVehicleJourneySegments[0] (REST) 包含从司机上次已知位置到即将到来的 VehicleStop 的路线信息。当前路线信息通常来自驾驶员应用,但 DeliveryVehicle.current_route_segment 的文档中指出的某些情况除外。Task.journey_sharing_info.remaining_vehicle_journey_segments (gRPC) 或 Task.journeySharingInfo.remainingVehicleJourneySegments (REST) 中的其他细分由 Fleet Engine 填充。它们提供剩余 VehicleStops 之间的路线信息。

last_location

DeliveryVehicleLocation

表示所分配车辆的上次报告位置。

last_location_snappable

bool

指示车辆的 lastLocation 是否可以贴靠到 current_route_segment。如果 last_locationcurrent_route_segment 不存在,则此值为 False。此值由 Fleet Engine 计算得出。系统会忽略来自客户端的更新。

任务的状态。这表示任务的进度。

枚举
STATE_UNSPECIFIED 默认值。用于未指定或无法识别的任务状态。
OPEN 任务尚未分配给送货车辆,或者送货车辆尚未到达 Task 分配的车辆停靠点。
CLOSED 当车辆经过相应任务的车辆停靠点时。

TaskOutcome

尝试执行任务的结果。当 TaskState 关闭时,TaskOutcome 会指明它是否成功完成。

枚举
TASK_OUTCOME_UNSPECIFIED 在设置值之前的任务结果。
SUCCEEDED 任务已成功完成。
FAILED 任务无法完成或已取消。

TaskOutcomeLocationSource

填充 task_outcome_location 的来源的身份。

枚举
TASK_OUTCOME_LOCATION_SOURCE_UNSPECIFIED 设置前的任务结果。
PROVIDER 提供方指定的 task_outcome_location
LAST_VEHICLE_LOCATION 提供方未指定 task_outcome_location,因此 Fleet Engine 使用了车辆的最后已知位置。

类型

任务的类型。

枚举
TYPE_UNSPECIFIED 默认值,任务类型未知。
PICKUP 取件任务是指从客户处取件所采取的操作。仓库或支线车辆取货应使用 SCHEDULED_STOP 类型。
DELIVERY 配送任务是指将货件配送给最终客户所采取的操作。仓库或支线车辆的下客点应使用 SCHEDULED_STOP 类型。
SCHEDULED_STOP 计划停止任务用于规划目的。例如,它可以表示从支线车辆或配送中心取货或卸货。不应将其用于从最终客户处取件或向最终客户送达的任何货件。
UNAVAILABLE 表示车辆无法提供服务的任务。例如,当司机休息或车辆加油时,可能会发生这种情况。

TaskAttribute

将任务属性描述为键值对。“键:值”字符串的长度不得超过 256 个字符。

字段
key

string

属性的键。键不得包含英文冒号字符 (:)。

联合字段 task_attribute_value。属性的值,可以是字符串、布尔值或双精度类型。如果未设置任何值,TaskAttribute string_value 将存储为空字符串“”。task_attribute_value 只能是以下值之一:
string_value

string

字符串类型的属性值。

bool_value

bool

布尔值类型的属性值。

number_value

double

双精度类型的属性值。

TaskTrackingInfo

TaskTrackingInfo 消息。该消息包含将用于显示的任务跟踪信息。如果某个跟踪 ID 与多个任务相关联,Fleet Engine 会使用启发式方法来决定选择哪个任务的 TaskTrackingInfo。

字段
name

string

必须采用 providers/{provider}/taskTrackingInfo/{tracking} 格式,其中 tracking 表示跟踪 ID。

tracking_id

string

不可变。任务的跟踪 ID。* 必须是有效的 Unicode 字符串。* 长度上限为 64 个字符。* 根据 Unicode 标准化形式 C 进行标准化。* 不得包含以下任何 ASCII 字符:'/'、':'、'?'、',' 或 '#'。

vehicle_location

DeliveryVehicleLocation

车辆的最后位置。

route_polyline_points[]

LatLng

一个点列表,这些点连接起来可形成车辆前往相应任务地点的预期路线的多段线。

remaining_stop_count

Int32Value

表示车辆在到达任务停止点之前剩余的停靠站数量,包括任务停止点。例如,如果车辆的下一站是任务停靠点,则值为 1。

remaining_driving_distance_meters

Int32Value

到相关 VehicleStop 的总剩余距离(以米为单位)。

estimated_arrival_time

Timestamp

表示预计到达经停地点的时间的时间戳。

estimated_task_completion_time

Timestamp

表示任务预计完成时间的时间戳。

state

State

任务的当前执行状态。

task_outcome

TaskOutcome

尝试执行任务的结果。

task_outcome_time

Timestamp

时间戳,用于指示提供方设置任务结果的时间。

planned_location

LocationInfo

不可变。任务的完成地点。

target_time_window

TimeWindow

任务应完成的时间窗口。

attributes[]

TaskAttribute

为任务设置的自定义属性。

TaskTrackingViewConfig

用于定义任务的数据元素何时应向最终用户显示的配置消息。

字段
route_polyline_points_visibility

VisibilityOption

用于指定路线多段线点何时可见的字段。如果未指定此字段,系统将使用相应数据的项目级默认公开范围配置。

estimated_arrival_time_visibility

VisibilityOption

用于指定何时可以显示预计到达时间的字段。如果未指定此字段,系统将使用相应数据的项目级默认公开范围配置。

estimated_task_completion_time_visibility

VisibilityOption

用于指定何时显示任务预计完成时间。如果未指定此字段,系统将使用相应数据的项目级默认公开范围配置。

remaining_driving_distance_visibility

VisibilityOption

用于指定何时可以显示剩余行驶距离的字段。如果未指定此字段,系统将使用相应数据的项目级默认公开范围配置。

remaining_stop_count_visibility

VisibilityOption

用于指定何时可以显示剩余停靠次数的字段。如果未指定此字段,系统将使用相应数据的项目级默认公开范围配置。

vehicle_location_visibility

VisibilityOption

用于指定车辆位置信息何时可供查看的字段。如果未指定此字段,系统将使用相应数据的项目级默认公开范围配置。

VisibilityOption

用于定义数据元素何时应向最终用户显示的可选消息。

字段
联合字段 visibility_option。所选的具体公开范围选项。visibility_option 只能是下列其中一项:
remaining_stop_count_threshold

int32

如果剩余停靠次数小于或等于 remaining_stop_count_threshold,则最终用户可以看到此数据元素。

duration_until_estimated_arrival_time_threshold

Duration

如果到达停靠站的预计到达时间 (ETA) 小于或等于 duration_until_estimated_arrival_time_threshold,则最终用户可以看到此数据元素。

remaining_driving_distance_meters_threshold

int32

如果剩余行驶距离(以米为单位)<= remaining_driving_distance_meters_threshold,则此数据元素对最终用户可见。

always

bool

如果设置为 true,则最终用户始终可以看到此数据元素,且没有阈值。此字段不能设置为 false。

never

bool

如果设置为 true,则此数据元素始终对最终用户隐藏,且没有阈值。此字段不能设置为 false。

TimeWindow

时间范围。

字段
start_time

Timestamp

必需。时间窗口的开始时间(含)。

end_time

Timestamp

必需。时间窗口的结束时间(含)。

UpdateDeliveryVehicleRequest

UpdateDeliveryVehicle 请求消息。

字段
header

DeliveryRequestHeader

可选。标准 Delivery API 请求标头。

delivery_vehicle

DeliveryVehicle

必需。要应用的 DeliveryVehicle 实体更新。注意:您无法更新 DeliveryVehicle 的名称。

update_mask

FieldMask

必需。一个字段掩码,用于指示要更新哪些 DeliveryVehicle 字段。请注意,update_mask 必须包含至少一个字段。

这是完全限定字段名称的逗号分隔列表。示例:"remaining_vehicle_journey_segments"

UpdateTaskRequest

UpdateTask 请求消息。

字段
header

DeliveryRequestHeader

可选。标准 Delivery API 请求标头。

task

Task

必需。与更新关联的任务。以下字段由 Fleet Engine 维护。请勿使用 Task.update 更新这些文件。

  • last_location
  • last_location_snappable
  • name
  • remaining_vehicle_journey_segments
  • task_outcome_location_source

注意:task_outcome 的值一经设置便无法更改。

如果任务已分配给送货车辆,请勿使用 Task.update 将任务状态设置为 CLOSED。请改为从配送车辆中移除包含相应任务的 VehicleStop,这会自动将任务状态设置为 CLOSED。

update_mask

FieldMask

必需。用于指示要更新哪些 Task 字段的字段掩码。注意:update_mask 必须包含至少一个字段。

这是完全限定字段名称的逗号分隔列表。示例:"task_outcome,task_outcome_time,task_outcome_location"

VehicleJourneySegment

表示车辆的行驶路段,即从上一停靠站到当前停靠站。如果这是第一个有效停靠站,则路线是从车辆的当前位置到此停靠站。

字段
stop

VehicleStop

指定经停地点以及与该经停地点关联的 Task。如果相应行程段是 JourneySharingInfo 的一部分,则 VehicleStop 的某些字段可能不存在。

driving_distance_meters

Int32Value

仅限输出。从上一个停靠站到此停靠站的行驶距离。如果当前经停点是行程段列表中的第一个经停点,则起点是车辆在将此经停点添加到列表时记录的位置。如果相应行程段是 JourneySharingInfo 的一部分,则可能不会显示此字段。

driving_duration

Duration

仅限输出。从前一站到此站的旅行时间。如果当前经停点是行程段列表中的第一个经停点,则起点是车辆在将此经停点添加到列表时记录的位置。

如果此字段在路径 Task.remaining_vehicle_journey_segments[0].driving_duration (gRPC) 或 Task.remainingVehicleJourneySegments[0].drivingDuration (REST) 中定义,则可以使用 DeliveryVehicle.remaining_duration (gRPC) 或 DeliveryVehicle.remainingDuration (REST) 中的值填充此字段。这样一来,系统会根据驾驶员应用的最新已知位置提供剩余驾驶时长,而不是根据上一个停靠点提供驾驶时长。

path[]

LatLng

仅限输出。从上一个经停点到此经停点的路径。如果当前经停点是行程段列表中的第一个经停点,则这是从车辆当前位置到该经停点的路径,时间是该经停点添加到列表中的时间。如果相应行程段是 JourneySharingInfo 的一部分,则可能不会显示此字段。

如果此字段是在路径 Task.journey_sharing_info.remaining_vehicle_journey_segments[0].path (gRPC) 或 Task.journeySharingInfo.remainingVehicleJourneySegments[0].path (REST) 中定义的,则可能会填充从 DeliveryVehicle.current_route_segment (gRPC) 或 DeliveryVehicle.currentRouteSegment (REST) 解码的 LatLng。这样一来,系统会提供从驾驶员应用的最新已知位置出发的行驶路线,而不是从上一个停靠站出发的路线。

VehicleStop

描述车辆停止以执行一个或多个 Task 的点。

字段
planned_location

LocationInfo

必需。停靠站的位置。请注意,Task 中的位置可能与此位置并不完全一致,但会位于此位置附近。在 GetTask 调用的响应中,系统不会填充此字段。

tasks[]

TaskInfo

在此停止点要执行的 Task 列表。在 GetTask 调用的响应中,系统不会填充此字段。

state

State

VehicleStop 的状态。在 GetTask 调用的响应中,系统不会填充此字段。

VehicleStop 的当前状态。

枚举
STATE_UNSPECIFIED 未知。
NEW 已创建,但未主动进行路由。
ENROUTE 已分配且正在积极路由。
ARRIVED 已抵达经停点。假设车辆在前往下一停靠站时,之前的所有停靠站都已完成。

TaskInfo

有关在此停靠站执行的任务的其他信息。

字段
task_id

string

任务 ID。在 GetTask 调用的响应中,系统不会填充此字段。任务 ID 受限于以下限制:

  • 必须是有效的 Unicode 字符串。
  • 长度上限为 64 个字符。
  • 根据 Unicode 标准化形式 C 进行标准化。
  • 不得包含以下任何 ASCII 字符:“/”“:”“?”“,”或“#”。
task_duration

Duration

仅限输出。执行任务所需的时间。

target_time_window

TimeWindow

仅限输出。任务应完成的时间窗口。此字段仅在对 GetDeliveryVehicle 的响应中设置。