Đặt một điểm cho một tuyến đường đi qua

Theo mặc định, các điểm tham chiếu trung gian được dùng để dừng để nhận và trả xe, nhưng bạn cũng có thể chỉ định rằng điểm tham chiếu trung gian chỉ là để truyền qua.

Một tuyến chứa điểm tham chiếu gốc, điểm tham chiếu trung gian truyền qua và điểm tham chiếu đích chỉ chứa một chân tuyến kết nối điểm gốc và đích đến, trong khi đi qua điểm tham chiếu trung gian (được gọi là via).

Định cấu hình điểm tham chiếu trung gian làm điểm tham chiếu truyền qua bằng cách đặt thuộc tính via của điểm tham chiếu thành true sử dụng Điểm tham chiếu (REST) hoặc Điểm tham chiếu (gRPC).

Thuộc tính via hoạt động hiệu quả nhất khi tạo các tuyến đường để phản hồi người dùng kéo các điểm tham chiếu trên bản đồ. Làm như vậy cho phép người dùng xem tuyến đường cuối cùng trông như thế nào theo thời gian thực và giúp đảm bảo rằng các điểm tham chiếu được đặt ở những vị trí mà Tuyến tính toán có thể truy cập được.

Ví dụ sau minh hoạ cách đánh dấu một điểm tham chiếu trung gian là điểm tham chiếu truyền qua.

{
  "location": {
    "latLng": {
      "latitude":37.419734,
      "longitude":-122.0827784
    }
  },
  "via": true
}

Truy cập vào mã địa điểm cho các điểm tham chiếu trung gian

Nếu bạn chỉ định vị trí của điểm khởi hành, điểm đến hoặc điểm tham chiếu trung gian dưới dạng chuỗi địa chỉ hoặc dưới dạng Mã cộng, thì API sẽ cố gắng tìm vị trí phù hợp nhất có mã địa điểm tương ứng. Mảng geocodingResults.intermediates trong kết quả chứa mã địa điểm tương ứng với vị trí của các điểm tham chiếu, cùng với dữ liệu bổ sung về vị trí đó.

Đối với mỗi phần tử của mảng intermediates, hãy sử dụng thuộc tính intermediateWaypointRequestIndex để xác định điểm tham chiếu trung gian trong yêu cầu tương ứng với mã địa điểm trong phản hồi.

Ví dụ:

  • Bạn chỉ định 3 điểm tham chiếu trung gian trong một yêu cầu. Hai trong số các điểm tham chiếu này được chỉ định bởi các chuỗi địa chỉ và một điểm theo toạ độ vĩ độ/kinh độ.

  • Bạn đưa geocodingResults vào mặt nạ trường phản hồi để chỉ định trả về mảng geocodingResults trong kết quả.

curl -X POST -d '{
  "origin":{
    "address": "1600 Amphitheatre Parkway, Mountain View, CA"
  },
  "destination":{
    "address": "24 Willie Mays Plaza, San Francisco, CA 94107"
  },
  "intermediates": [
    {
      "address": "450 Serra Mall, Stanford, CA 94305, USA"
    },
    {
      "location":{
        "latLng":{
          "latitude": 37.419734,
          "longitude": -122.0807784
        }
      }
    },
    {
      "address": "1836 El Camino Real, Redwood City, CA 94063"
    }
  ],
  "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,geocodingResults'
'https://routes.googleapis.com/directions/v2:computeRoutes'

Phản hồi bao gồm mảng geocodingResults chứa mã địa điểm cho điểm khởi hành, điểm đến và cho 2 trong số 3 điểm tham chiếu. Đây là các điểm tham chiếu tại chỉ mục 0 và 2 của yêu cầu. Do điểm tham chiếu tại chỉ mục 1 của yêu cầu được chỉ định bằng cách sử dụng các toạ độ vĩ độ/kinh độ, nên điểm tham chiếu này sẽ bị bỏ qua khỏi mảng geocodingResults trong phản hồi.

{
  "routes": [{...}],
  "geocodingResults": {
    "origin": {
      "geocoderStatus": {},
      "type": [
        "premise"
      ],
      "placeId": "ChIJj38IfwK6j4ARNcyPDnEGa9g"
    },
    "destination": {
     "geocoderStatus": {},
      "type": [
        "premise"
      ],
      "placeId": "ChIJI7ES6tl_j4ARVpDZoXbWAiY"
    },
    "intermediates": [
      {
        "geocoderStatus": {},
        "intermediateWaypointRequestIndex": 0,
        "type": [
            "street_address"
        ],
        "placeId": "ChIJvdLMGyq7j4ARScE5tWX_C0Y"
      },
      {
        "geocoderStatus": {},
        "intermediateWaypointRequestIndex": 2,
        "type": [
          "premise"
        ],
        "placeId": "ChIJkTc0GKajj4AR9UMsOSHwGD0"
      }
    ]
  }
}