Mendapatkan rute transportasi umum

Developer Wilayah Ekonomi Eropa (EEA)

Rute transportasi umum memberikan petunjuk navigasi menggunakan opsi transportasi umum yang tersedia di wilayah tersebut. Opsi transportasi umum dapat mencakup bus, kereta bawah tanah, dan kereta api, serta opsi lainnya. Rute transportasi umum biasanya juga menyertakan petunjuk tentang berjalan kaki ke, dari, dan di antara stasiun transportasi umum. Karena rute transportasi umum biasanya mengharuskan Anda melakukan perjalanan menggunakan lebih dari satu moda perjalanan, cara Anda meminta rute dan beberapa bagian responsnya berbeda.

Perbedaan rute transportasi umum dengan rute lainnya

Rute transportasi umum, yang Anda minta dengan menetapkan travelMode ke TRANSIT, berbeda dengan rute yang menggunakan opsi travelMode yang berbeda. Anda tidak dapat meminta semua objek dan opsi yang sama, dan respons menampilkan kolom yang berbeda, jika dibandingkan dengan rute lain.

Di Routes API, langkah-langkah secara konsisten merupakan satu petunjuk navigasi di semua jenis perjalanan. Jadi, setiap petunjuk navigasi adalah satu langkah. Respons rute transportasi umum sangat mirip dengan rute dengan moda perjalanan lainnya, dengan beberapa perbedaan utama:

Minta perbedaan Perbedaan respons
Anda tidak dapat menentukan titik jalan perantara. Mencakup detail Transit.
Tidak dapat melihat rute ramah lingkungan Mencakup metadata untuk setiap mode perjalanan yang berisi ringkasan langkah-langkah untuk mode perjalanan tersebut, di `stepsOverview` (untuk meminta metadata ini, gunakan masker kolom `routes.legs.stepsOverview`).
Tidak dapat menentukan cara dan apakah akan menyertakan data traffic
Tidak dapat menentukan fitur rute yang harus dihindari
Hanya dapat menentukan transitPreferences untuk routingPreference. Untuk mengetahui detailnya, lihat TransitPreferences.

Untuk mengetahui informasi selengkapnya tentang respons yang ditampilkan oleh Routes API, lihat Meninjau respons rute transportasi umum.

Untuk melihat rute transportasi umum

  1. Tetapkan asal dan tujuan Anda.

  2. Setel mode perjalanan ke transportasi umum:

    travelMode: "TRANSIT"

  3. Tambahkan mask kolom untuk mendapatkan kolom respons yang Anda inginkan. Lihat Meminta kolom rute transportasi umum yang Anda butuhkan.

  4. Jika perlu, tetapkan parameter opsional. Lihat Menetapkan parameter untuk rute transportasi umum.

Meminta kolom rute transportasi umum yang Anda butuhkan

Minta kolom rute transportasi umum yang Anda butuhkan menggunakan mask kolom. Tabel berikut berisi beberapa respons yang disarankan untuk rute transportasi umum, dan mask kolom yang akan digunakan untuk memintanya.

Untuk meminta informasi ini Gunakan mask kolom ini
Semua detail rute routes.*
Semua detail transportasi umum routes.legs.steps.transitDetails
Lokasi awal untuk setiap bagian rute routes.legs.steps.startLocation
Lokasi akhir untuk setiap segmen perjalanan routes.legs.steps.endLocation
Polyline rute untuk setiap langkah routes.legs.steps.polyline
Jenis transportasi umum yang digunakan untuk setiap langkah routes.legs.steps.travelMode
Estimasi tarif untuk setiap langkah dan rute, serta Estimasi tarif yang dilokalkan routes.travel_advisory.transitFare localized routes.localizedValues.transitFare

Catatan: transitFare hanya diberikan jika API dapat menentukan informasi tarif transportasi umum untuk semua langkah.

Teks yang dilokalkan untuk durasi dan jarak routes.localizedValues

Untuk mengetahui informasi selengkapnya tentang cara menyetel mask kolom, lihat Memilih kolom yang akan ditampilkan.

Menetapkan parameter untuk rute transportasi umum

Berikut adalah parameter yang relevan untuk rute transportasi umum:

Untuk melakukannya Gunakan parameter ini Catatan
Pilih mode transportasi umum travelMode: "TRANSIT" Wajib. Pelajari lebih lanjut.
Menetapkan waktu tiba atau berangkat "arrivalTime": "yyyy-mm-ddThh:mm:ssZ"

ATAU

"departureTime": "yyyy-mm-ddThh:mm:ssZ"
Opsional. Anda dapat menentukan arrival_time atau departure_time. Jika waktu tidak ditentukan, departure_time akan ditetapkan secara default ke waktu eksekusi saat ini (now). Anda dapat menyetel waktu kedatangan dan keberangkatan hanya dalam jangka waktu berikut, dengan waktu eksekusi saat ini (now) sebagai referensi:
  • hingga dan termasuk 7 hari sebelum now
  • hingga dan termasuk 100 hari setelah now
Waktu dinyatakan sebagai stempel waktu dalam format RFC3339 UTC "Zulu". Pelajari lebih lanjut

Catatan: Jadwal transportasi umum sering berubah, perjalanan transportasi umum yang tersedia dapat berubah dari waktu ke waktu dan tidak ada jaminan untuk memberikan hasil yang konsisten untuk prediksi jauh sebelumnya.

Menyertakan rute alternatif "computeAlternativeRoutes": true Opsional. Setel ke benar (true) agar Compute Routes menghitung hingga 3 rute tambahan, jika tersedia. Pelajari lebih lanjut
Menentukan preferensi untuk jenis transportasi umum "transitPreferences": { allowedTravelModes: ["BUS","SUBWAY","TRAIN","LIGHT_RAIL","RAIL"]}

Catatan: Jika Anda menentukan moda transportasi pilihan, rute yang ditampilkan mungkin masih menggunakan moda transportasi umum lainnya, bahkan hanya menggunakan moda transportasi umum lainnya, bergantung pada efisiensi rute dan ketersediaan perjalanan pilihan.

Opsional. Tentukan moda transportasi umum pilihan. Pelajari lebih lanjut
Menentukan preferensi untuk rute transportasi umum "transitPreferences": {routingPreference: "LESS_WALKING|FEWER_TRANSFERS"} Opsional. Tentukan preferensi pemilihan rute transportasi umum. Pelajari lebih lanjut

Contoh: Mendapatkan rute transportasi umum

Contoh berikut mendapatkan rute transportasi umum dengan parameter berikut:

  • Menentukan preferensi untuk perjalanan dengan kereta api dan sedikit berjalan.

  • Meminta rute alternatif.

  • Menyediakan mask kolom yang menampilkan detail transit:

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'

Respons menampilkan kolom route.legs.steps.transitDetails untuk dua rute:

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