您选择的流量偏好设置会在路线详情的准确性与请求性能之间取得平衡。在发出请求时,您需要权衡是返回最准确的结果是更好的,还是尽快返回结果。Routes API 提供了可让您控制响应数据的质量与响应延迟时间的选项。
设置流量数据的级别
Routes API 提供 AllocationPreference (REST) 和 AllocationPreference (gRPC),可让您指定用于计算路由的路由偏好设置。这些偏好的不同程度不同,它们在计算路线时会考虑路况信息。每个路线偏好设置产生的结果在路线质量、预计 ETA 和响应延迟时间方面有所不同。
路况信息是车流速率的特征。例如:
- 如果没有拥塞,就会被视为正常路况,流量也会以正常的无阻碍速度流动。
- 临近高峰期时,交通密度会上升,这会导致交通速度减慢,从而产生轻度到中等的交通状况。
- 在碰撞到碰撞的车流中,流量会停止,导致交通拥堵。
不知道流量
设置 TRAFFIC_UNAWARE
路线偏好设置时,计算路线时不会考虑当前路况。此路由偏好设置可实现最低的响应延迟(返回响应的速度最快)。
默认设置是 TRAFFIC_UNAWARE
。
在响应中:
预计到达时间包含在
duration
响应属性中。duration
和staticDuration
响应属性包含相同的值。
如果您希望以最快的速度返回响应,并且大致的路由详细信息就足够了,则可以使用此路由偏好设置。
可感知路况
设置 TRAFFIC_AWARE
路由偏好设置时,计算路线时会考虑当前路况。因此,路线和路线详情可以更准确地反映实际情况。由于数据质量的提高以牺牲响应延迟时间为代价,因此应用性能优化以减少大部分延迟时间。
在响应中:
考虑实时流量的预计到达时间包含在
duration
响应属性中。staticDuration
响应属性包含路线沿途行驶的时长(不考虑路况)。
如果您需要比 TRAFFIC_UNAWARE
更准确的路由详细信息,并且您不介意返回响应的延迟时间适度增加,请使用此路由偏好设置。
可感知流量的最佳策略
设置 TRAFFIC_AWARE_OPTIMAL
路由偏好设置时,计算路由时会考虑当前路况,但不会应用性能优化。在此模式下,服务器会更详尽地搜索道路网以找到最佳路线。
TRAFFIC_AWARE_OPTIMAL
路线偏好设置等同于 maps.google.com 和 Google 地图移动应用使用的模式。
将此选项与计算路线矩阵结合使用时,请求中的元素数量(出发地数量 × 目的地数量)不能超过 100。如需详细了解计算路线矩阵的限制,请参阅计算路线矩阵。
在响应中:
考虑实时流量的预计到达时间包含在
duration
响应属性中。staticDuration
响应属性包含路线沿途行驶的时长(不考虑路况)。
此路由偏好设置提供的响应延迟时间最长(即响应的返回延迟时间最长)。如果您希望获得最高质量的结果,而不考虑响应需要多长时间,请使用此路由偏好设置。
设置出发时间的影响
您可以选择使用 departureTime
属性设置行程的出发时间。如果您未设置 departureTime
属性,则默认为发出请求的时间。
对于
TRAFFIC_UNAWARE
,您不能设置departureTime
,因为路线和时长的选择取决于道路网和与时间无关的平均路况信息。对于
TRAFFIC_AWARE
和TRAFFIC_AWARE_OPTIMAL
(考虑了实时路况信息),与departureTime
越接近,实时路况信息就越重要。您将出发时间设置为越远,就越能考虑历史路况信息。
设置路由偏好设置示例
以下 JSON 代码演示了如何在请求消息实体正文中设置路由偏好设置。
{ "origin":{ "location":{ "latLng":{ "latitude":37.419734, "longitude":-122.0827784 } } }, "destination":{ "location":{ "latLng":{ "latitude":37.417670, "longitude":-122.079595 } } }, "travelMode":"DRIVE", "routingPreference":"TRAFFIC_AWARE_OPTIMAL" }
配置多段线质量
利用 Routes API,您可以沿路况感知多段线请求有关路况的信息。如需了解详情,请参阅请求多段线。
多段线的质量可用以下术语来描述:
组成多段线的点的数量
点越多,多段线(尤其是曲线中)越平滑。
点的浮点精度
点以纬度和经度值的形式指定,以单精度浮点格式表示。这非常适合较小的值(可以精确表示),但由于浮点舍入误差,精度会随着值的增加而降低。
computeRoutes 方法 (REST) 和 ComputeRoutes 方法 (gRPC) 支持用于控制多段线质量的 polylineQuality
请求选项。
设置多段线质量的示例
polylineQuality
将多段线的质量指定为 HIGH_QUALITY
或 OVERVIEW
(默认)。使用 OVERVIEW
时,多段线由少量点组成,并且请求延迟时间比 HIGH_QUALITY
短。
例如,在请求正文中:
{ "origin":{ "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0827784 } } }, "destination":{ "location":{ "latLng":{ "latitude": 37.417670, "longitude": -122.079595 } } }, "travelMode": "DRIVE", "routingPreference": "TRAFFIC_AWARE", "polylineQuality": "HIGH_QUALITY", "polylineEncoding": "ENCODED_POLYLINE", "departureTime": "2023-10-15T15:01:23.045123456Z", ... }