Tuyến đường công cộng cung cấp hướng dẫn điều hướng bằng các phương tiện công cộng có sẵn trong khu vực. Các phương tiện công cộng có thể bao gồm xe buýt, tàu điện ngầm và tàu hoả, cùng nhiều phương tiện khác. Tuyến đường công cộng cũng thường bao gồm hướng dẫn đi bộ đến, đi từ và giữa các trạm công cộng. Vì tuyến đường công cộng thường yêu cầu bạn di chuyển bằng nhiều phương thức di chuyển, nên cách bạn yêu cầu tuyến đường và một số phần của phản hồi sẽ khác nhau.
Sự khác biệt giữa tuyến đường công cộng và các tuyến đường khác
Tuyến đường công cộng (mà bạn yêu cầu bằng cách đặt travelMode thành TRANSIT) khác với các tuyến đường sử dụng các tuỳ chọn travelMode khác. Bạn không thể yêu cầu tất cả các đối tượng và tuỳ chọn giống nhau, đồng thời phản hồi sẽ trả về các trường khác nhau khi so sánh với các tuyến đường khác.
Trong Routes API, các bước luôn là một hướng dẫn điều hướng trên tất cả các loại hình di chuyển. Vì vậy, mỗi hướng dẫn điều hướng là một bước. Phản hồi tuyến đường công cộng rất giống với các tuyến đường có các phương thức di chuyển khác, chỉ có một vài điểm khác biệt chính:
| Sự khác biệt về yêu cầu | Sự khác biệt về phản hồi |
|---|---|
| Bạn không thể chỉ định các điểm tham chiếu trung gian. | Bao gồm thông tin chi tiết về phương tiện công cộng. |
| Không thể xem các tuyến đường thân thiện với môi trường | Bao gồm siêu dữ liệu cho từng phương thức di chuyển có chứa thông tin tóm tắt về các bước cho phương thức di chuyển đó, trong `stepsOverview` (để yêu cầu siêu dữ liệu này, hãy sử dụng mặt nạ trường `routes.legs.stepsOverview`). |
| Không thể chỉ định cách và có nên đưa dữ liệu giao thông vào hay không | |
| Không thể chỉ định các tính năng của tuyến đường cần tránh | |
Chỉ có thể chỉ định transitPreferences cho
routingPreference. Để biết thông tin chi tiết, hãy xem
TransitPreferences. |
Để biết thêm thông tin về phản hồi do Routes API trả về, hãy xem bài viết Xem xét phản hồi tuyến đường công cộng.
Cách xem tuyến đường công cộng
Đặt điểm xuất phát và điểm đến.
Đặt phương thức di chuyển thành phương tiện công cộng:
travelMode: "TRANSIT"Thêm mặt nạ trường để nhận các trường phản hồi mà bạn muốn. Xem bài viết Yêu cầu các trường tuyến đường công cộng mà bạn cần.
Nếu cần, hãy đặt các tham số không bắt buộc. Xem bài viết Đặt tham số cho tuyến đường công cộng.
Yêu cầu các trường tuyến đường công cộng mà bạn cần
Yêu cầu các trường tuyến đường công cộng mà bạn cần bằng cách sử dụng mặt nạ trường. Bảng sau đây chứa một số phản hồi được đề xuất cho tuyến đường công cộng và mặt nạ trường để sử dụng khi yêu cầu các phản hồi đó.
| Để yêu cầu thông tin này | Sử dụng mặt nạ trường này |
|---|---|
| Tất cả thông tin chi tiết về tuyến đường | routes.* |
| Tất cả thông tin chi tiết về phương tiện công cộng | routes.legs.steps.transitDetails |
| Vị trí bắt đầu cho mỗi chặng | routes.legs.steps.startLocation |
| Vị trí kết thúc cho mỗi chặng | routes.legs.steps.endLocation |
| Đường gấp khúc của tuyến đường cho mỗi bước | routes.legs.steps.polyline |
| Loại phương tiện công cộng được sử dụng cho mỗi bước | routes.legs.steps.travelMode |
| Giá vé ước tính cho mỗi bước và tuyến đường, cũng như Giá vé ước tính đã bản địa hoá | routes.travel_advisory.transitFare
localized routes.localizedValues.transitFare
Lưu ý: |
| Văn bản đã bản địa hoá cho thời lượng và khoảng cách | routes.localizedValues |
Để biết thêm thông tin về cách đặt mặt nạ trường, hãy xem bài viết Chọn các trường cần trả về.
Đặt tham số cho tuyến đường công cộng
Dưới đây là các tham số có liên quan cho tuyến đường công cộng:
| Để thực hiện việc này | Sử dụng tham số này | Ghi chú |
|---|---|---|
| Chọn phương thức di chuyển bằng phương tiện công cộng | travelMode: "TRANSIT" |
Bắt buộc. Tìm hiểu thêm. |
| Đặt thời gian đến hoặc thời gian khởi hành | "arrivalTime": "yyyy-mm-ddThh:mm:ssZ"
HOẶC "departureTime": "yyyy-mm-ddThh:mm:ssZ" |
Không bắt buộc. Bạn có thể chỉ định arrival_time hoặc departure_time. Nếu
không chỉ định thời gian nào, thì departure_time sẽ mặc định là thời gian thực thi hiện tại (now). Bạn chỉ có thể đặt thời gian đến và thời gian khởi hành trong khoảng thời gian sau, với thời gian thực thi hiện tại (now) làm tham chiếu:
Lưu ý: Lịch trình phương tiện công cộng thay đổi thường xuyên, các chuyến đi bằng phương tiện công cộng có thể thay đổi theo thời gian và không có gì đảm bảo rằng kết quả dự đoán sẽ nhất quán trong thời gian dài. |
| Bao gồm các tuyến đường thay thế | "computeAlternativeRoutes": true |
Không bắt buộc. Đặt thành true để Compute Routes (Tính toán tuyến đường) tính toán tối đa 3 tuyến đường bổ sung (nếu có). Tìm hiểu thêm |
| Chỉ định lựa chọn ưu tiên cho loại phương tiện công cộng | "transitPreferences": { allowedTravelModes: ["BUS","SUBWAY","TRAIN","LIGHT_RAIL","RAIL"]}
Lưu ý: Nếu bạn chỉ định phương thức di chuyển ưu tiên, thì các tuyến đường được trả về vẫn có thể sử dụng các phương thức di chuyển khác bằng phương tiện công cộng, thậm chí chỉ sử dụng các phương thức di chuyển khác bằng phương tiện công cộng, tuỳ thuộc vào hiệu quả của tuyến đường và tính khả dụng của phương thức di chuyển ưu tiên. |
Không bắt buộc. Chỉ định các phương thức di chuyển ưu tiên bằng phương tiện công cộng. Tìm hiểu thêm |
| Chỉ định lựa chọn ưu tiên cho tuyến đường công cộng | "transitPreferences": {routingPreference: "LESS_WALKING|FEWER_TRANSFERS"} |
Không bắt buộc. Chỉ định lựa chọn ưu tiên về tuyến đường công cộng. Tìm hiểu thêm |
Ví dụ: Xem tuyến đường công cộng
Ví dụ sau đây cho biết cách xem tuyến đường công cộng có các tham số sau:
Chỉ định lựa chọn ưu tiên cho việc di chuyển bằng tàu hoả và ít đi bộ.
Yêu cầu các tuyến đường thay thế.
Cung cấp mặt nạ trường trả về thông tin chi tiết về phương tiện công cộng:
curl -X POST -H 'content-type: application/json' -d '{ "origin": { "address": "Humberto Delgado Airport, Portugal" }, "destination": { "address": "Basílica of Estrela, Praça da Estrela, 1200-667 Lisboa, Portugal" }, "travelMode": "TRANSIT", "computeAlternativeRoutes": true, "transitPreferences": { routingPreference: "LESS_WALKING", allowedTravelModes: ["TRAIN"] }, }' \ -H 'Content-Type: application/json' \ -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: routes.legs.steps.transitDetails' \ 'https://routes.googleapis.com/directions/v2:computeRoutes'
Phản hồi cho thấy các trường route.legs.steps.transitDetails cho 2 tuyến đường:
{ "routes": [ { "legs": [ { "steps": [ {}, {}, {}, { "transitDetails": { "stopDetails": { "arrivalStop": { "name": "Saldanha", "location": { "latLng": { "latitude": 38.73532, "longitude": -9.14543 } } }, "arrivalTime": "2023-08-26T10:49:42Z", "departureStop": { "name": "Aeroporto", "location": { "latLng": { "latitude": 38.769047799999996, "longitude": -9.1284593 } } }, "departureTime": "2023-08-26T10:32:10Z" }, "localizedValues": { "arrivalTime": { "time": { "text": "11:49" }, "timeZone": "Europe/Lisbon" }, "departureTime": { "time": { "text": "11:32" }, "timeZone": "Europe/Lisbon" } }, "headsign": "São Sebastião", "transitLine": { "agencies": [ { "name": "Metropolitano de Lisboa, E.P.E.", "phoneNumber": "+351 21 350 0115", "uri": "https://www.metrolisboa.pt/" } ], "name": "Vermelha", "color": "#f23061", "nameShort": "Vm", "textColor": "#000000", "vehicle": { "name": { "text": "Metrô" }, "type": "SUBWAY", "iconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/subway2.png" } }, "stopCount": 11 } }, {}, { "transitDetails": { "stopDetails": { "arrivalStop": { "name": "Rato", "location": { "latLng": { "latitude": 38.7201022, "longitude": -9.1540562 } } }, "arrivalTime": "2023-08-26T11:01:37Z", "departureStop": { "name": "Saldanha", "location": { "latLng": { "latitude": 38.73527, "longitude": -9.1455200000000012 } } }, "departureTime": "2023-08-26T10:57:57Z" }, "localizedValues": { "arrivalTime": { "time": { "text": "12:01" }, "timeZone": "Europe/Lisbon" }, "departureTime": { "time": { "text": "11:57" }, "timeZone": "Europe/Lisbon" } }, "headsign": "Rato", "transitLine": { "agencies": [ { "name": "Metropolitano de Lisboa, E.P.E.", "phoneNumber": "+351 21 350 0115", "uri": "https://www.metrolisboa.pt/" } ], "name": "Amarela", "color": "#f2c200", "nameShort": "Am", "textColor": "#000000", "vehicle": { "name": { "text": "Metrô" }, "type": "SUBWAY", "iconUri": "//maps.gstatic.com/mapfiles/transit/iw2/6/subway2.png" } }, "stopCount": 4 } }, {}, {}, {}, {}, {}, {} ] } ] } ] }