Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Nhà phát triển ở Khu vực kinh tế Châu Âu (EEA)
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 Điểm trung gian (REST) hoặc Điểm trung gian (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.
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ảng geocodingResults trong kết quả.
curl-XPOST-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.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-06-20 UTC."],[[["\u003cp\u003eIntermediate waypoints can be designated as pass-through points using the \u003ccode\u003evia\u003c/code\u003e property to avoid unnecessary stops.\u003c/p\u003e\n"],["\u003cp\u003eSetting \u003ccode\u003evia\u003c/code\u003e to \u003ccode\u003etrue\u003c/code\u003e allows for a more direct route, but may result in detours or route calculation failures if the waypoint is inaccessible.\u003c/p\u003e\n"],["\u003cp\u003eWhen using address strings or Plus codes for waypoints, the API returns place IDs for these locations in the \u003ccode\u003egeocodingResults\u003c/code\u003e array.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003egeocodingResults\u003c/code\u003e array helps identify the place IDs of waypoints, which can be useful for subsequent requests or analysis.\u003c/p\u003e\n"],["\u003cp\u003eWaypoints specified using latitude/longitude coordinates or place IDs are excluded from the \u003ccode\u003egeocodingResults\u003c/code\u003e array.\u003c/p\u003e\n"]]],[],null,["# Set a point for a route to pass through\n\n**European Economic Area (EEA) developers** If your billing address is in the European Economic Area, effective on 8 July 2025, the [Google Maps Platform EEA Terms of Service](https://cloud.google.com/terms/maps-platform/eea) will apply to your use of the Services. Functionality varies by region. [Learn more](/maps/comms/eea/faq).\n\nBy default, intermediate waypoints are used for stopping for pickups and\ndropoffs, but you can also specify that an intermediate waypoint is meant just\nto pass through.\n\nA route that contains an origin waypoint, a pass-through intermediate\nwaypoint, and a destination waypoint contains just one route leg that\nconnects the origin and the destination, while passing through the intermediate\n(called a `via`) waypoint.\n\nConfigure an intermediate waypoint to be a pass-through waypoint by\nsetting the `via` property of the waypoint to `true` using either\n[Waypoint](/maps/documentation/routes/reference/rest/v2/Waypoint) (REST) or\n[Waypoint](/maps/documentation/routes/reference/rpc/google.maps.routing.v2#waypoint) (gRPC).\n\nThe `via` property is most effective when creating routes in response to\nthe user dragging the waypoints on the map. Doing so allows the user to see how\nthe final route may look in real-time and helps ensure that waypoints are placed\nin locations that are accessible to the Compute Routes.\n| **Caution:** Using the `via:` prefix to avoid stopovers results in routes that are strict in their interpretation of the waypoint. This interpretation may result in severe detours on the route or `ZERO_RESULTS` in the response status code if the Routes API is unable to create a route through that point.\n\nThe following example demonstrates how to mark an intermediate waypoint as a\npass-through waypoint. \n\n```cplint\n{\n \"location\": {\n \"latLng\": {\n \"latitude\":37.419734,\n \"longitude\":-122.0827784\n }\n },\n \"via\": true\n}\n```\n\nAccess place IDs for intermediate waypoints\n-------------------------------------------\n\nIf you specify the location of an origin, destination, or intermediate waypoint\nas an **address string** or as a **Plus code** , the API attempts to find the\nmost relevant location which has a corresponding place ID. The\n[`geocodingResults.intermediates`](/maps/documentation/routes/reference/rest/v2/TopLevel/computeRoutes#geocodingresults)\narray in the results contains the place ID corresponding to the location of the\nwaypoints, along with additional data about the location.\n| **Note:** If a waypoint is specified as a place ID or as latitude/longitude coordinates, it is omitted from the place ID lookup results.\n\nFor each element of the `intermediates` array, use the\n`intermediateWaypointRequestIndex` property to determine which intermediate\nwaypoint in the request corresponds to the place ID in the response.\n\nFor example:\n\n- You specify three intermediate waypoints in a request. Two of these\n waypoints are specified by address strings and one by latitude/longitude\n coordinates.\n\n- You include `geocodingResults` in the response field mask to specify to\n return the `geocodingResults` array in the results.\n\n```json\ncurl -X POST -d '{\n \"origin\":{\n \"address\": \"1600 Amphitheatre Parkway, Mountain View, CA\"\n },\n \"destination\":{\n \"address\": \"24 Willie Mays Plaza, San Francisco, CA 94107\"\n },\n \"intermediates\": [\n {\n \"address\": \"450 Serra Mall, Stanford, CA 94305, USA\"\n },\n {\n \"location\":{\n \"latLng\":{\n \"latitude\": 37.419734,\n \"longitude\": -122.0807784\n }\n }\n },\n {\n \"address\": \"1836 El Camino Real, Redwood City, CA 94063\"\n }\n ],\n \"travelMode\": \"DRIVE\",\n}'\n-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY'\n-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,geocodingResults'\n'https://routes.googleapis.com/directions/v2:computeRoutes'\n```\n\nThe response includes the `geocodingResults` array containing the place ID for\nthe origin, destination, and for two of the three waypoints. These are the\nwaypoints at index 0 and 2 of the request. Because the waypoint at index 1 of\nthe request was specified by using latitude/longitude coordinates, it is\nomitted from the `geocodingResults` array in the response. \n\n```json\n{\n \"routes\": [{...}],\n \"geocodingResults\": {\n \"origin\": {\n \"geocoderStatus\": {},\n \"type\": [\n \"premise\"\n ],\n \"placeId\": \"ChIJj38IfwK6j4ARNcyPDnEGa9g\"\n },\n \"destination\": {\n \"geocoderStatus\": {},\n \"type\": [\n \"premise\"\n ],\n \"placeId\": \"ChIJI7ES6tl_j4ARVpDZoXbWAiY\"\n },\n \"intermediates\": [\n {\n \"geocoderStatus\": {},\n \"intermediateWaypointRequestIndex\": 0,\n \"type\": [\n \"street_address\"\n ],\n \"placeId\": \"ChIJvdLMGyq7j4ARScE5tWX_C0Y\"\n },\n {\n \"geocoderStatus\": {},\n \"intermediateWaypointRequestIndex\": 2,\n \"type\": [\n \"premise\"\n ],\n \"placeId\": \"ChIJkTc0GKajj4AR9UMsOSHwGD0\"\n }\n ]\n }\n}\n```"]]