Xem tuyến đường dành cho phương tiện công cộng

Nhà phát triển ở Khu vực kinh tế Châu Âu (EEA)

Tuyến đường đi bằng phương tiện công cộng cung cấp hướng dẫn chỉ đường bằng các lựa chọn phương tiện công cộng có trong khu vực. Các lựa chọn về 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 lựa chọn khác. Tuyến đường đi phương tiện 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 phương tiện công cộng. Vì tuyến đường giao thô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.

Điểm khác biệt giữa tuyến đường đi phương tiện công cộng và các tuyến đường khác

Các tuyến đường công cộng mà bạn yêu cầu bằng cách đặt travelMode thành TRANSIT sẽ khác với các tuyến đường sử dụng các lựa chọn travelMode khác. Bạn không thể yêu cầu tất cả các đối tượng và lựa 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 chỉ 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 chỉ dẫn điều hướng là một bước. Phản hồi về tuyến đường sử dụng phương tiện công cộng rất giống với các tuyến đường sử dụng phương tiện di chuyển khác, chỉ có một vài điểm khác biệt chính:

Các điểm 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ể nhận đượ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 chế độ di chuyển có chứa thông tin tóm tắt về các bước cho chế độ di chuyển đó, trong `stepsOverview` (để yêu cầu siêu dữ liệu này, hãy dùng mặt nạ trường `routes.legs.stepsOverview`).
Không thể chỉ định cách thức và có nên đưa dữ liệu lưu lượng truy cập vào hay không
Không thể chỉ định các đặc điểm 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 các phản hồi về tuyến đường giao thông công cộng.

Cách xem tuyến đường đi bằng phương tiện công cộng

  1. Đặt điểm xuất phát và điểm đến.

  2. Đặt chế độ di chuyển thành phương tiện công cộng:

    travelMode: "TRANSIT"

  3. Thêm một mặt nạ trường để nhận các trường phản hồi mà bạn muốn. Xem phần Yêu cầu các trường tuyến đường vận chuyển mà bạn cần.

  4. Nếu cần, hãy đặt các tham số không bắt buộc. Xem phần Đặt thông số cho tuyến đường giao thông công cộng.

Yêu cầu các trường thông tin về tuyến đường vận chuyển công cộng mà bạn cần

Yêu cầu các trường tuyến đường giao thô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ố câu trả lời đề xuất cho tuyến đường giao thông công cộng và mặt nạ trường cần dùng để yêu cầu các câu trả lời đó.

Cách 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 về tuyến đường routes.*
Tất cả thông tin về phương tiện công cộng routes.legs.steps.transitDetails
Vị trí bắt đầu của mỗi chặng routes.legs.steps.startLocation
Vị trí kết thúc của mỗi chặng routes.legs.steps.endLocation
Đường nhiều đoạn của tuyến đường cho từng bước routes.legs.steps.polyline
Loại phương tiện công cộng được dùng cho từng bước routes.legs.steps.travelMode
Giá vé ước tính cho từng bước và tuyến đường, và Giá vé ước tính theo ngôn ngữ địa phương routes.travel_advisory.transitFare localized routes.localizedValues.transitFare

Lưu ý: transitFare chỉ được cung cấp nếu API có thể xác định thông tin về giá vé phương tiện công cộng cho tất cả các bước.

Văn bản được 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 phần Chọn các trường cần trả về.

Đặt thông số cho tuyến đường sử dụng phương tiện công cộng

Sau đây là các tham số liên quan cho tuyến đường giao thông công cộng:

Cách thực hiện: Sử dụng thông số này Ghi chú
Chọn 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, 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à đi trong khung thời gian sau, với thời gian thực thi hiện tại (now) làm thời gian tham chiếu:
  • tối đa 7 ngày trước now
  • tối đa 100 ngày sau now
Thời gian được biểu thị dưới dạng dấu thời gian theo định dạng "Zulu" RFC3339 UTC. Tìm hiểu thêm

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 sẽ cung cấp kết quả nhất quán cho các dự đoán trong tương lai xa.

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 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 một phương thức di chuyển ưu tiên, 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, thậm chí chỉ sử dụng các phương thức di chuyển khác, tuỳ thuộc vào hiệu quả của tuyến đường và khả năng cung cấp phương thức di chuyển ưu tiên.

Không bắt buộc. Chỉ định phương tiện di chuyển công cộng mà bạn muốn dùng. Tìm hiểu thêm
Chỉ định lựa chọn ưu tiên cho tuyến đường phương tiện 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 đi phương tiện công cộng. Tìm hiểu thêm

Ví dụ: Xem tuyến đường đi bằng phương tiện công cộng

Ví dụ sau đây lấy một tuyến đường đi phương tiện công cộng với các tham số sau:

  • Chỉ định lựa chọn ưu tiên cho việc đi lại 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 mặt nạ trường trả về thông tin chi tiết về quá trình vận chuyển:

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
          }
        },
        {},
        {},
        {},
        {},
        {},
        {}
        ]
      }
    ]
  }
]
}