设置中间航点

欧洲经济区 (EEA) 开发者

中间航点是指您希望路线经过的、位于出发地和目的地之间的位置。

您可以使用 REST computeRoutes 方法或 gRPC ComputeRoutes 方法的 intermediates 数组属性,在单个请求中定义最多 25 个中间途经点

经停点与直达航点

您可以将中途经停点配置为停靠点或途经点:

  • 经停点:默认情况下,车辆会在该位置停靠。每个经停点都会通过在响应中向 legs 数组添加 RouteLeg 条目来划分路线。如需了解详情,请参阅在路线中设置经停点
  • "via" 设置为 true途经途经点:车辆会途经相应位置,但不会在此处停车。途经航点不会向 legs 数组添加条目。如需了解详情,请参阅设置路线的途经点

路线段和中间航点

对于请求中的每个中途经停点,响应会在 routes.legs 数组中包含一个单独的 RouteLeg 对象。

例如,包含出发地、一个中途经停点和目的地的路线包含两个路线段: * 第 1 段:从出发地到中途经停点。 * 第 2 段:从中间经停点到目的地。

示例:包含中间途经点的请求

以下示例使用 intermediates 数组向路线添加单个中途经停点。

curl -X POST -d '{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 37.419734,
        "longitude": -122.0827784
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude": 37.417670,
        "longitude": -122.079595
      }
    }
  },
  "intermediates": [
    {
      "location":{
        "latLng":{
          "latitude": 37.419734,
          "longitude": -122.0807784
        }
      }
    }
  ],
  "travelMode": "DRIVE"
}' \
-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'

包含多个路线段的响应

由于请求中的中间航点是未设置 "via": true 的经停点,因此响应会在 legs 数组中将路线分为两段:

{
  "routes": [
    {
      "distanceMeters": 805,
      "duration": "248s",
      "legs": [
        {
          "distanceMeters": 207,
          "duration": "89s",
          "startLocation": {
            "latLng": {
              "latitude": 37.4197318,
              "longitude": -122.0826233
            }
          },
          "endLocation": {
            "latLng": {
              "latitude": 37.419734,
              "longitude": -122.0807792
            }
          }
        },
        {
          "distanceMeters": 598,
          "duration": "159s",
          "startLocation": {
            "latLng": {
              "latitude": 37.419734,
              "longitude": -122.0807792
            }
          },
          "endLocation": {
            "latLng": {
              "latitude": 37.4176166,
              "longitude": -122.0793882
            }
          }
        }
      ]
    }
  ]
}