Theo mặc định, các điểm trung gian được dùng để dừng xe để đón và trả khách, nhưng bạn cũng có thể chỉ định rằng một điểm trung gian chỉ để đi qua.
Một tuyến đường chứa điểm trung gian, điểm trung gian đi qua và điểm trung gian đích chỉ chứa một chặng tuyến kết nối điểm xuất phát và điểm đến, trong khi đi qua điểm trung gian (được gọi là via
).
Định cấu hình một điểm trung gian để làm điểm trung gian chuyển tiếp bằng cách đặt thuộc tính via
của điểm trung gian thành true
bằng cách sử dụng Waypoint (REST) hoặc Waypoint (gRPC).
Thuộc tính via
hiệu quả nhất khi tạo tuyến đường để phản hồi việc người dùng kéo các điểm trung gian trên bản đồ. Việc này cho phép người dùng xem tuyến đường cuối cùng theo thời gian thực và giúp đảm bảo rằng các điểm trung gian đượ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 trung gian là điểm trung gian đi 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 trung gian
Nếu bạn chỉ định vị trí của điểm xuất phát, điểm đến hoặc điểm trung gian dưới dạng chuỗi địa chỉ hoặc 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 trung gian, 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 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 ba điểm trung gian trong một yêu cầu. Hai trong số các điểm trung gian này được chỉ định bằng chuỗi địa chỉ và một điểm trung gian được chỉ định bằng toạ độ vĩ độ/kinh độ.
Bạn đưa
geocodingResults
vào mặt nạ trường phản hồi để chỉ định trả về mảnggeocodingResults
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à hai trong số ba điểm trung gian. Đây là các điểm trung gian ở chỉ mục 0 và 2 của yêu cầu. Vì điểm trung gian 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 trung gian 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" } ] } }