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

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

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

Một tuyến đường có chứa một điểm đánh dấu điểm khởi hành, một điểm đánh dấu trung gian đi qua và một điểm đánh dấu điểm đến chỉ chứa một đoạn tuyến đường kết nối điểm khởi hành và điểm đến, đồng thời đi qua điểm đánh dấu trung gian (gọi là via).

Định cấu hình một điểm tham chiếu trung gian thành đ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 bằng cách sử dụng Waypoint (REST) hoặc Waypoint (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 việc người dùng kéo các điểm tham chiếu trên bản đồ. Khi đó, người dùng có thể xem tuyến đường cuối cùng có thể 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à Compute Routes có thể truy cập.

Ví dụ sau đây 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 xuất phát, đích đến hoặc điểm tham chiếu trung gian dưới dạng một chuỗi địa chỉ hoặc dưới dạng một Plus Code, 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 đánh dấ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 nào 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ằng chuỗi địa chỉ và một điểm được chỉ định bằng toạ độ vĩ độ/kinh độ.

  • Bạn thêm 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 xuất phát, đích đến và cho 2 trong số 3 điểm tham chiếu. Đây là các điểm đánh dấu tại chỉ mục 0 và 2 của yêu cầu. Vì điểm đánh dấu tại chỉ mục 1 của yêu cầu được chỉ định bằng cách sử dụng toạ độ vĩ độ/kinh độ, nên điểm này sẽ bị bỏ qua trong 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"
      }
    ]
  }
}