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

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

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 tham chiếu trung gian.

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

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

Ví dụ – Thiết lập điểm tham chiếu trung gian

Ví dụ sau đây sử dụng thuộc tính mảng intermediates để thêm một điểm tham chiếu trung gian vào phần 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 của lệnh gọi này chứa mảng legs. Mỗi bước của chặng được biểu thị bằng một đố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": [
                {
                  ...