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ượngRouteLeg
.
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": [ { ...