您可以使用 Routes Preferred API 的 ComputeRouteMatrix
方法计算多个出发地和目的地之间的路线距离和时长。ComputeRouteMatrix
支持流式 gRPC 调用和 REST HTTP 调用。
给定一个出发地和目的地对列表,ComputeRouteMatrix
会计算路线在每个起点的起点和终点的距离。数据流的每个元素均对应于单个路由的信息。
与距离矩阵服务相比,ComputeRouteMatrix
方法具有多项优势:
- 流式插入允许在计算整个矩阵之前返回元素,从而缩短延迟时间。
ComputeRouteMatrix
具有精细的流量计算选项,让您可以做出质量延迟时间的权衡决策。- 请求在 Google 基础架构中以更高的优先级运行,因此可用性更高。
- 您可以为航点指定航向(出行方向)和道路侧边信息。
- 您可以请求返回通行费信息,以及路线距离和预计到达时间。
启用 ComputeRouteMatrix 方法
您必须先启用 ComputeRouteMatrix
方法,然后才能在代码中使用该方法。如需详细了解如何启用 Routes Preferred API 方法,请参阅使用入门。
使用 ComputeRouteMatrix 方法
ComputeRouteMatrix
方法通过 Routes Preferred v1 端点提供。
如需了解详情,请参阅以下文档:
以下通用步骤介绍了如何使用 gRPC 调用 ComputeRouteMatrix
方法:
从 googleapis 代码库中查看必要的 protobuffer:
https://github.com/googleapis/googleapis/tree/master/google/maps/routes
请注意,某些构建系统(例如 Go)可能会自动为您执行此操作。
使用您的首选语言和一套构建工具生成相关的 protobuffer 代码。
生成申请。该请求必须发送以下两项元数据:
- X-Goog-Api-Key 必须设置为您的 API 密钥。
必须将 X-Goog-Fieldmask 设置为响应中所需的字段的英文逗号分隔列表。例如 X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeter,status。您可以使用通配符 (*) 来表示所有字段,但我们不建议这样做。可以使用通配符测试和了解 API 响应,但需在正式版代码中的字段掩码中明确列出所需的字段。
如需详细了解如何构造字段掩码字符串,请参阅 https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto。请注意,停用不需要的字段可以减少延迟时间,因为这些字段可能需要进一步的计算。如果您指定所需的字段,并且之后需要增加计算量的新字段,则延迟时间将保持稳定。
将您的请求发送到
routespreferred.googleapis.com:443
。您必须使用 TLS 协议。
如需查看使用 ComputeRouteMatrix
方法的示例,请参阅计算路由矩阵(Beta 版)示例。
ComputeRouteMatrix
方法的一项独特功能是可以为整个流或单个元素返回错误代码。例如,如果请求格式有误(例如,源站为零),则流连接会返回错误。但是,如果错误仅适用于该数据流的几个元素(例如,为起点设置无效的地点 ID),那么只有受该错误影响的元素才包含错误代码。
流返回的元素不能保证按任何顺序返回。因此,每个元素都包含一个 origin_index
和一个 destination_index
。对于请求指定的出发地和目的地,对于给定的元素,路线出发地相当于 origins[origin_index]
,路线目的地等同于 destinations[destination_index]
。这些数组为零索引。请务必存储出发地和目的地列表顺序。
计算通行费
如需了解如何计算通行费,请参阅计算通行费。
如需查看计算通行费的示例,请参阅计算路线矩阵示例。