调用计算路线或计算路线矩阵的方法时,您必须指定要在响应中返回哪些字段。没有默认返回的字段列表。如果您省略此列表,这些方法会返回错误。
通过创建响应字段掩码来指定字段列表。然后,您可以使用网址参数 $fields
或 fields
或使用 HTTP/gRPC 标头 X-Goog-FieldMask
将响应字段掩码传递给每个方法。
字段遮盖是一种很好的设计做法,可以确保您不会请求不必要的数据,这有助于避免不必要的处理时间和结算费用。
如需详细了解网址参数,请参阅系统参数。
定义响应字段掩码
响应字段掩码是以英文逗号分隔的路径列表,其中每条路径在响应消息中指定一个唯一字段。此路径从顶级响应消息开始,并使用以点分隔的路径来指定字段。
字段路径的构建方式如下:
topLevelField[.secondLevelField][.thirdLevelField][...]
对于计算路由方法,字段路径指定:
对于计算路由矩阵方法,字段路径指定以下各项的字段:
- REST:要返回的响应正文的字段。
- gRPC:要返回的响应中 RouteMatrixElement 对象的字段。
如需详细了解如何构造字段路径,请参阅 field_mask.proto。
指定字段路径
本部分介绍了如何将字段路径指定为响应字段掩码的一部分。
对 computeRoutes
的 REST 调用
在第一个示例中,您使用对 computeRoutes
方法的 REST 调用来计算路线。在此示例中,您指定在响应中返回 Route.distanceMeters
和 Route.duration
字段。请务必为字段名称添加“routes.
”前缀
X-Goog-FieldMask: routes.distanceMeters,routes.duration
对 computeRouteMatrix
的 REST 调用
对于用于计算路线矩阵的 REST computeRouteMatrix
方法,请指定为出发地和目的地的每个组合返回 originIndex
、destinationIndex
和 duration
:
X-Goog-FieldMask: originIndex,destinationIndex,duration
gRPC 调用
对于 gRPC,请设置包含响应字段掩码的变量。然后,您可以将该变量传递给请求。
const ( fieldMask = "routes.distanceMeters,routes.duration,routes.polyline.encodedPolyline" )
字段路径注意事项
请仅包含您在响应中所需的字段。仅返回所需的字段:
允许服务器保存处理周期,从而以更低的延迟时间返回结果。
确保延迟时间性能稳定。我们日后可能会添加更多响应字段,这些新字段可能需要额外的计算时间。如果您选择所有字段,或者选择顶级的所有字段,则可能会遇到性能下降,因为我们添加的任何新字段都将自动包含在响应中。
这会减小响应大小,从而实现更高的网络吞吐量。
确保您不会请求不必要的数据,这有助于避免不必要的处理时间和结算费用。