Điểm trung gian là các vị trí nằm giữa điểm xuất phát và điểm đến mà bạn muốn tuyến đường đi qua. Điểm trung gian có thể là một điểm dừng hoặc bạn có thể chỉ định điểm trung gian là một vị trí cần đi qua. Để biết ví dụ về điểm trung gian cho một điểm dừng, hãy xem phần Đặt điểm dừng dọc theo tuyến đường. Để biết ví dụ về điểm trung gian cần đi qua, hãy xem phần Đặt điểm cho tuyến đường cần đi qua.
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 trung gian.
Đối với mỗi điểm trung gian trong yêu cầu, Đối tượng tuyến (REST) hoặc Đối tượng tuyến (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 đó của hành trình.
Mỗi chặng của một tuyến được biểu thị bằng một đối tượng RouteLeg (REST) hoặc RouteLeg (gRPC).
Kiểm soát trường RouteLeg
nào sẽ trả về bằng cách sử dụng mặt nạ trường phản hồi.
Ví dụ – Đặt điểm trung gian
Ví dụ sau đây sử dụng thuộc tính mảng intermediates
để thêm một điểm trung gian duy nhất vào nội dung yêu cầu POST của một tuyến.
Ví dụ này sử dụng 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 đại diện bằng đố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": [ { ...