Đặt điểm tham chiếu trung gian

Điểm trung gian là các vị trí nằm giữa điểm xuất phát và điểm đến mà bạn muốn tuyến đường đi qua. Điểm trung gian có thể là một điểm dừng hoặc bạn có thể chỉ định điểm trung gian là một vị trí cần đi qua. Để biết ví dụ về điểm trung gian cho một điểm dừng, hãy xem phần Đặt điểm dừng dọc theo tuyến đường. Để biết ví dụ về điểm trung gian cần đi qua, hãy Đặt điểm cho tuyến đường cần đi qua.

Sử dụng thuộc tính mảng intermediates của phương thức computeRoutes (REST) hoặc phương thức ComputeRoutes (gRPC) để xác định tối đa 25 điểm trung gian.

Đối với mỗi điểm trung gian trong yêu cầu, Đối tượng tuyến (REST) hoặc Đối tượng tuyến (gRPC) trong phản hồi sẽ thêm một mục vào mảng legs để cung cấp thông tin chi tiết cho chặng đó của hành trình.

Mỗi chặng của một tuyến được biểu thị bằng một đối tượng RouteLeg (REST) hoặc RouteLeg (gRPC). Kiểm soát trường RouteLeg nào sẽ trả về bằng cách sử dụng mặt nạ trường phản hồi.

Ví dụ – Đặt điểm trung gian

Ví dụ sau đây sử dụng thuộc tính mảng intermediates để thêm một điểm trung gian duy nhất vào nội dung yêu cầu POST của một tuyến.

Ví dụ này sử dụng mặt nạ trường phản hồi trong tiêu đề X-Goog-FieldMask chỉ định trả về các trường sau trong phản hồi:

  • routes.duration
  • routes.distanceMeters
  • routes.legs tương ứng với toàn bộ đối tượng 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'

Phản hồi từ lệnh gọi này chứa mảng legs. Mỗi bước của chặng được đại diện bằng đối tượng RouteLegStep (REST) hoặc 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": [
                {
                  ...