Đặ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 sử dụng để dừng để đón và giảm, nhưng bạn cũng có thể chỉ định rằng điểm tham chiếu trung gian có nghĩa là để đi qua.

Một tuyến chứa một điểm tham chiếu gốc, một trung gian truyền qua điểm tham chiếu và một điểm tham chiếu đích chỉ chứa một đoạn đường kết nối điểm khởi hành và điểm đến trong khi đi qua trung gian (được gọi là điểm tham chiếu 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 bằng cách 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 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 sẽ cho phép người dùng biết cách tuyến đường cuối cùng có thể hiển thị theo thời gian thực và giúp đảm bảo rằng các điểm tham chiếu được đặt tại các vị trí có thể truy cập được vào Tuyến điện toán.

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 một điểm xuất phát, điểm đến hoặc điểm tham chiếu trung gian dưới dạng chuỗi địa chỉ hoặc Mã cộng, API sẽ cố gắng tìm vị trí phù hợp nhất có mã địa điểm tương ứng. Chiến lược phát hành đĩa đơn geocodingResults.intermediates mảng trong kết quả chứa mã địa điểm tương ứng với vị trí của đ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 xem chất trung gian nào điểm tham chiếu 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ố những điều sau điểm tham chiếu được chỉ định bởi chuỗi địa chỉ và một theo vĩ độ/kinh độ toạ độ.

  • 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 hai trong số ba điểm tham chiếu. Đây là những điểm tham chiếu tại chỉ mục 0 và 2 của yêu cầu. Bởi vì đ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 vĩ độ/kinh độ, 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"
      }
    ]
  }
}