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

Nhà phát triển ở Khu vực kinh tế Châu Âu (EEA)

Các điểm tham chiếu trung gian là những vị trí nằm 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 điểm này là một vị trí để đi qua. Để biết ví dụ về một điểm đánh dấu cho một điểm dừng, hãy xem phần Đặt một điểm dừng dọc theo tuyến đường. Để biết ví dụ về một điểm tham chiếu để truyền qua, hãy xem phần Đặt điểm để truyền qua cho một tuyến đường.

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 Tuyến đường (REST) hoặc đối tượng Tuyến đường (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 đường đó.

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 những 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ụ – Đặt đ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 duy nhất vào nội dung yêu cầu POST của một tuyến đường.

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 từ 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": [
                {
                  ...