中间航点是介于原点和目标之间的位置 以及您希望路线所经过的路径中间航点可以是经停点或 则可以将其指定为要经过的位置。如需查看航点示例 要查看经停点,请参阅在路线沿途设置经停点。举个例子, 要传递的航点 为直通车路线设置点。
使用 intermediates
数组属性
computeRoutes 方法 (REST) 或
ComputeRoutes
方法 (gRPC),最多可以定义 25 个中间航点。
对于请求中的每个中间航点,
路由对象 (REST) 或
路由对象 (gRPC)
响应会向 legs
数组添加一个条目,以提供
这一环节。
路线的每段路程都由
RouteLeg (REST) 或
RouteLeg (gRPC) 对象。
使用RouteLeg
响应字段掩码。
示例 - 设置中间航点
以下示例使用 intermediates
数组属性将单个
将中间航点添加到路线的 POST 请求正文。
此示例在 X-Goog-FieldMask
标头中使用响应字段掩码
指定在响应中返回以下字段:
routes.duration
routes.distanceMeters
routes.legs
,与整个RouteLeg
对象相对应。
curl -X POST -d '{ "origin":{ "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0827784 } }, "sideOfRoad": true }, "destination":{ "location":{ "latLng":{ "latitude": 37.417670, "longitude": -122.079595 } } }, "intermediates": [ { "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0807784 } } } ], "travelMode": "DRIVE", "routingPreference": "TRAFFIC_AWARE", "departureTime": "2022-10-15T15:01:23.045123456Z", "computeAlternativeRoutes": false, "routeModifiers": { "avoidTolls": false, "avoidHighways": false, "avoidFerries": false }, "languageCode": "en-US", "units": "IMPERIAL" }' -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' -H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs' 'https://routes.googleapis.com/directions/v2:computeRoutes'
此调用的响应包含 legs
数组。路程的每一步
以
RouteLegStep (REST) 或
RouteLegStep (gRPC) 对象。
{ "routes": [ { "legs": [ # First leg { "distanceMeters": 207, "duration": "89s", "staticDuration": "89s", "polyline": { "encodedPolyline": "ipkcFjgchVd@@@cF]@@oCK?" }, "startLocation": { "latLng": { "latitude": 37.4197318, "longitude": -122.0826233 } }, "endLocation": { "latLng": { "latitude": 37.419734, "longitude": -122.08077919999998 } }, "steps": [ { "distanceMeters": 21, "staticDuration": "6s", "polyline": { "encodedPolyline": "ipkcFjgchVd@@" }, "startLocation": { "latLng": { "latitude": 37.4197318, "longitude": -122.0826233 } }, "endLocation": { "latLng": { "latitude": 37.41954, "longitude": -122.08262750000002 } } }, ... }, # Second leg { "distanceMeters": 598, "duration": "159s", "staticDuration": "159s", "polyline": { "encodedPolyline": "ipkcFz{bhVh@??{@xPBP?J}E{E?" }, "startLocation": { "latLng": { "latitude": 37.419734, "longitude": -122.08077919999998 } }, "endLocation": { "latLng": { "latitude": 37.417616599999995, "longitude": -122.07938820000001 } }, "steps": [ { ...