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

Tuyến đường chuyển tuyến cung cấp hướng dẫn điều hướng sử dụng phương tiện công cộng hiện có trong khu vực. Bạn có thể chọn phương tiện công cộng như xe buýt, tàu điện ngầm và tàu hoả và nhiều loại nội dung khác. Tuyến đường chuyển tuyến cũng thường bao gồm hướng dẫn về đi bộ đến, đi từ và giữa các trạm phương tiện công cộng. Vì tuyến đường phương tiện 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. yêu cầu tuyến và một số phần của phản hồi khác nhau.

Tuyến đường phương tiện công cộng khác với các tuyến đường khác như thế nào

Các tuyến đường chuyển tuyến mà bạn yêu cầu bằng cách đặt TravelMode TRANSIT, khác nhau từ các tuyến đường sử dụng các tuỳ chọn TravelMode khác nhau. Bạn không thể yêu cầu cùng một đối tượng và tuỳ chọn. Phản hồi sẽ trả về khi so sánh với các tuyến đường khác.

Trong API Tuyến đường, các bước nhất quán là một hướng dẫn điều hướng cho mọi loại hình du lịch. Mỗi hướng dẫn điều hướng là một bước. Phương tiện công cộng phản hồi về tuyến đường rất giống với các tuyến đường có các phương thức đi lại khác, với một vài phím khác biệt:

Yêu cầu khác biệt Sự khác biệt về câu trả lời
Bạn không thể chỉ định điểm tham chiếu trung gian. Bao gồm chi tiết về Phương tiện công cộng.
Không 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 mỗi phương tiện đi lại có chứa bản tóm tắt các bước để thực hiện phương tiện đi lại đó, trong phần "stepOverview" ("Tổng quan") (để 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 thức và liệu 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 đối tượng tuyến đường để tránh
Chỉ có thể chỉ định transitPreferences cho routingPreference. Để biết thông tin chi tiết, hãy xem [TransitPreferences](reference/rest/v2/TransitPreferences).

Để biết thêm thông tin về phản hồi do Routes API trả về, hãy xem Xem phản hồi về tuyến đường của phương tiện công cộng.

Để xem tuyến đường phương tiện công cộng

  1. Đặt điểm khởi hành và điểm đến của bạn.

  2. Đặt phương tiện đi lại thành phương tiện công cộng:

    travelMode: "TRANSIT"

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

  4. Đặt các tham số không bắt buộc nếu cần. Xem phần Đặt thông số cho tuyến phương tiện công cộng.

Yêu cầu các trường tuyến đường chuyển tuyến bạn cần

Yêu cầu các trường tuyến đường chuyển tuyến 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 phương tiện công cộng tuyến đường và mặt nạ trường để sử dụng nhằm yêu cầu chúng.

Để yêu cầu thông tin này Sử dụng mặt nạ trường này
Tất cả chi tiết 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
Định tuyến hình nhiều đường cho mỗi bước routes.legs.steps.polyline
Loại phương tiện công cộng dùng cho mỗi bước routes.legs.steps.travelMode
Giá vé ước tính cho mỗi chặng và tuyến đường, và Giá vé ước tính tại đị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 giá vé đi phương tiện công cộng cho tất cả các bước.

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 thiết lập mặt nạ trường, hãy xem Chọn các trường cần trả về.

Đặt thông số cho tuyến phương tiện công cộng

Dưới đây là các tham số có liên quan cho tuyến phương tiện công cộng:

Để thực hiện việc này Dùng tham số này Ghi chú
Chọn chế độ chuyển tuyến 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"

OR

"departureTime": "yyyy-mm-ddThh:mm:ssZ"
Không bắt buộc. Bạn có thể chỉ địnhThời gian đến hoặc thời gian khởi hành. Nếu không có thời gian nào được chỉ định, departure_time mặc định thành thời gian thực thi hiện tại (now). Bạn có thể đặt thời gian đến và thời gian khởi hành chỉ trong khoảng thời gian sau, với thời gian hiện tại thời gian thực thi (now) làm tham chiếu:
  • tối đa và bao gồm 7 ngày trước now
  • tối đa và bao gồm 100 ngày sau now
Thời gian được biểu thị dưới dạng dấu thời gian trong RFC3339 giờ UTC "Zulu" . Tìm hiểu thêm
Bao gồm các tuyến đường thay thế "computeAlternativeRoutes": true Không bắt buộc. Đặt thành true để API tuyến đường tính toán lên đến 3 tuyến đường bổ sung (nếu có). Tìm hiểu thêm
Chỉ định các 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 tiện đi lại ưu tiên, các tuyến đường bị trả về vẫn có thể sử dụng các phương tiện công cộng khác, thậm chí chỉ sử dụng các phương thức phương tiện công cộng khác, tuỳ thuộc vào hiệu quả của tuyến đường và tính sẵn có của khi đi du lịch.

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

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

Ví dụ sau đây xác định một tuyến đường đang chuyển tuyến với các tham số sau:

  • Cho biết các lựa chọn ưu tiên về việc đi lại trên tàu và ít đi bộ hơn.

  • Yêu cầu tuyến 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 hai tuyến:

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