Đặ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à điểm đế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 nó làm vị trí đi qua. Ví dụ về điểm tham chiếu để tìm điểm dừng, hãy xem Đặt điểm dừng dọc theo một tuyến đường. Ví dụ về điểm tham chiếu để truyền qua, Đặ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 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, hàm Đố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 vào mảng legs để cung cấp thông tin chi tiết về đoạn đó trong hành trình.

Mỗi chặng của tuyến đường được biểu thị bằng một RouteLeg (REST) hoặc Đối tượng RouteLeg (gRPC). Kiểm soát 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 thuộc tính duy nhất điểm tham chiếu trung gian đến nội dung yêu cầu POST của một tuyến.

Ví dụ này sử dụng một 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ân là được biểu thị bằng RouteLegStep (REST) hoặc Đối tượng 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": [
                {
                  ...