本指南介绍了如何将使用 Directions API 或 Distance Matrix API 的应用迁移到使用 Routes API。如需详细了解 Routes API,请参阅产品概览。
迁移结算方面的最佳实践
如果您的 API 用量足够高,可以采用第二级定价,则此指南适用。迁移到较新版本的 API 时,您还需要为不同的 SKU 付费。为避免在过渡当月产生更高的费用,我们建议您在尽可能接近月初时切换到生产环境中的新 API。这样可确保您在迁移月份达到最具成本效益的月度价格层级。如需了解价格层级,请参阅价格页面和价格常见问题解答。
更新 REST API 端点
更新代码以使用新的 Routes API 端点
来自 Directions API
| Directions API | https://maps.googleapis.com/maps/api/directions/outputFormat?parameters | 
    
| Routes API | https://routes.googleapis.com/directions/v2:computeRoutes | 
    
Distance Matrix API
| Distance Matrix API | https://maps.googleapis.com/maps/api/distancematrix/outputFormat?parameters | 
    
| Routes API | https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix | 
    
将网址参数转换为使用 HTTPS 请求正文
使用 Directions API 和 Distance Matrix API 时,您需要将配置属性作为网址参数传递给 HTTP GET 请求。例如,对于 Directions API:
https://maps.googleapis.com/maps/api/directions/outputFormat?parameters
借助 Routes API,您可以在请求正文或标头中传递参数,作为 HTTP POST 请求的一部分。如需查看示例,请参阅:
将采用多段线编码的途经点转换为位置途经点
Directions API(旧版)支持将途经点指定为编码的折线,以便在 16384 个字符的网址限制范围内容纳大量途经点。在 Routes API 中,此功能不是必需的,因为可以在 REST 或 gRPC 请求正文中以纬度/经度坐标的形式传输途经点。如需查看示例,请参阅计算路线矩阵文档中的 HTTP 示例,或指定途经点文档中的定义中间途经点。
转换参数
下表列出了 Directions API 和 Distance Matrix API 中已重命名或修改的参数,以及 GA 版本中不支持的参数。如果您使用了上述任何参数,请更新代码。
请求参数转换
| 路线或距离矩阵参数 | Routes API 参数 | 备注 | 
|---|---|---|
alternatives | 
          computeAlternativeRoutes | 
          |
arrival_time | 
          arrivalTime | 
          仅在 TRANSIT 模式下可用,且不能与 departureTime 同时使用。 | 
        
avoid | 
          routeModifiers | 
          |
departure_time | 
          departureTime | 
          不能与 arrivalTime 同时使用。 | 
        
language | 
          languageCode | 
          仅支持计算路线。 | 
mode | 
          travelMode | 
          添加了对   | 
        
region | 
          regionCode | 
          |
traffic_model | 
          trafficModel | 
          了解详情 | 
transit_mode | 
          "travelMode": "TRANSIT" | 
          在 Directions API(旧版)中,在公交路线中,出行方式相同的行程的每个路段(例如步行或乘坐公交)都被视为一个步数,而相应出行方式的各个方向则位于子步数中。相比之下,在 Routes API 中,无论采用何种出行方式,步数始终是一条导航指令。因此,每条导航指令都是一个步骤。 对于一种出行模式下的多个步数,Routes API 会在 `stepsOverview` 中提供包含相应出行模式的步数摘要的元数据。如需请求此元数据,请使用 `routes.legs.stepsOverview` 字段遮罩。 了解详情。 | 
transit_routing_preference | 
          transitRoutingPreference | 
          了解详情 | 
units | 
          units | 
          了解详情 | 
waypoints | 
          intermediates | 
          移除了对编码折线的支持。 | 
optimize=true 适用于途经点 | 
          "optimizeWaypointOrder": "true" | 
          了解详情 | 
响应参数转换
| 路线或距离矩阵参数 | Routes API 参数 | 备注 | 
|---|---|---|
copyrights | 
          不包含在回答中。向用户显示结果时,您必须附上以下声明: 
 例如: 
  | 
        |
distance | 
          distanceMeters | 
          距离仅以米为单位。 | 
duration_in_traffic | 
          duration | 
          已在 Routes API 中移除,请改用 duration。 | 
        
status | 
          无法使用。使用 HTTP 响应代码来表示 API 报告的错误。如需了解详情,请参阅处理请求错误。 | |
geocoded_waypoints | 
          geocoding_results | 
          仅支持计算路线。仅包含指定为地址的途经点的地理编码响应信息。 | 
bounds | 
          viewport | 
          |
legs.end_address | 
          不可用。 | |
legs.start_address | 
          不可用。 | |
overview_polyline | 
          多段线 | |
summary | 
          description | 
          |
waypoint_order | 
          optimizedIntermediateWaypointIndex |