Toplu taşıma rotası, bölgedeki toplu taşıma seçeneklerini kullanarak navigasyon talimatları sağlar. Toplu taşıma seçenekleri arasında otobüs, metro ve tren gibi araçlar yer alabilir. Toplu taşıma rotası genellikle toplu taşıma istasyonlarına, istasyonlardan ve istasyonlar arasında yürümeyle ilgili talimatları da içerir. Toplu taşıma rotası genellikle birden fazla seyahat modu kullanarak seyahat etmenizi gerektirdiğinden, rotayı isteme şekliniz ve yanıtın bazı bölümleri farklıdır.
Toplu taşıma rotalarının diğer rotalardan farkı
travelMode değerini TRANSIT olarak ayarlayarak istediğiniz toplu taşıma rotaları, farklı travelMode seçeneklerini kullanan rotalardan farklıdır. Aynı nesnelerin ve seçeneklerin tümünü isteyemezsiniz. Yanıt, diğer rotalara kıyasla farklı alanlar döndürür.
Routes API'de adımlar, tüm seyahat türlerinde tutarlı bir şekilde tek bir navigasyon talimatıdır. Yani her navigasyon talimatı bir adımdır. Toplu taşıma rotası yanıtı, diğer seyahat modlarına sahip rotalara çok benzer ancak birkaç önemli fark vardır:
| İstek farklılıkları | Yanıt farklılıkları |
|---|---|
| Ara yol noktaları belirtemezsiniz. | Toplu taşıma ayrıntılarını içerir. |
| Çevre dostu rotalar alınamıyor | Her seyahat modu için ilgili seyahat modunun adımlarının özetini içeren meta verileri `stepsOverview` alanında içerir (bu meta verileri istemek için `routes.legs.stepsOverview` alan maskesini kullanın). |
| Trafik verilerinin nasıl ve dahil edilip edilmeyeceğini belirtememe | |
| Kaçınılacak rota özellikleri belirtilemiyor | |
routingPreference için yalnızca transitPreferences
belirtebilirsiniz. Ayrıntılı bilgi için TransitPreferences başlıklı makaleyi inceleyin. |
Routes API tarafından döndürülen yanıt hakkında daha fazla bilgi için Toplu taşıma rotası yanıtlarını inceleme başlıklı makaleyi inceleyin.
Toplu taşıma rotası almak için
Başlangıç ve varış noktanızı ayarlayın.
Seyahat modunu toplu taşıma olarak ayarlayın:
travelMode: "TRANSIT"İstediğiniz yanıt alanlarını almak için bir alan maskesi ekleyin. İhtiyacınız olan toplu taşıma rotası alanlarını isteme başlıklı makaleyi inceleyin.
Gerekirse isteğe bağlı parametreleri ayarlayın. Toplu taşıma rotası için parametreleri ayarlama başlıklı makaleyi inceleyin.
İhtiyacınız olan toplu taşıma rotası alanlarını isteme
Alan maskelerini kullanarak ihtiyacınız olan toplu taşıma rotası alanlarını isteyin. Aşağıdaki tabloda, toplu taşıma rotası için önerilen bazı yanıtlar ve bunları istemek için kullanılacak alan maskesi yer almaktadır.
| Bu bilgileri talep etmek için | Bu alan maskesini kullanın |
|---|---|
| Tüm rota ayrıntıları | routes.* |
| Tüm toplu taşıma ayrıntıları | routes.legs.steps.transitDetails |
| Her ayağın başlangıç konumu | routes.legs.steps.startLocation |
| Her ayağın bitiş konumu | routes.legs.steps.endLocation |
| Her adım için rota çoklu çizgisi | routes.legs.steps.polyline |
| Her adımda kullanılan toplu taşıma türü | routes.legs.steps.travelMode |
| Her adım ve rota için tahmini ücret ve Yerelleştirilmiş tahmini ücret | routes.travel_advisory.transitFare
localized routes.localizedValues.transitFare
Not: |
| Süre ve mesafe için yerelleştirilmiş metin | routes.localizedValues |
Alan maskelerini ayarlama hakkında daha fazla bilgi için Döndürülecek alanları seçme başlıklı makaleyi inceleyin.
Toplu taşıma rotası için parametreleri ayarlama
Toplu taşıma rotalarıyla ilgili parametreler şunlardır:
| Bunu yapmak için: | Bu parametreyi kullanın | Notlar |
|---|---|---|
| Toplu taşıma modunu seçme | travelMode: "TRANSIT" |
Zorunlu. Daha fazla bilgi |
| Varış veya kalkış zamanı ayarlama | "arrivalTime": "yyyy-mm-ddThh:mm:ssZ"
VEYA "departureTime": "yyyy-mm-ddThh:mm:ssZ" |
İsteğe bağlıdır. arrival_time veya departure_time değerlerinden birini belirtebilirsiniz. Hiçbir zaman belirtilmezse departure_time, varsayılan olarak geçerli yürütme zamanına (now) ayarlanır. Varış ve ayrılış zamanlarını yalnızca aşağıdaki zaman aralığında, geçerli yürütme zamanını (now) referans alarak ayarlayabilirsiniz:
Not: Toplu taşıma programları sık sık değişir. Mevcut toplu taşıma seyahatleri zaman içinde değişebilir ve çok önceden yapılan tahminler için tutarlı sonuçlar sağlanacağı garanti edilmez. |
| Alternatif rotaları dahil etme | "computeAlternativeRoutes": true |
İsteğe bağlıdır. Mümkün olduğunda Compute Routes'un en fazla 3 ek rota hesaplaması için bu değeri true olarak ayarlayın. Daha fazla bilgi |
| Geçiş türüyle ilgili tercihleri belirtme | "transitPreferences": { allowedTravelModes: ["BUS","SUBWAY","TRAIN","LIGHT_RAIL","RAIL"]}
Not: Tercih edilen bir seyahat modu belirtirseniz döndürülen rotalar, tercih edilen seyahat modunun verimliliğine ve kullanılabilirliğine bağlı olarak diğer toplu taşıma modlarını kullanabilir, hatta yalnızca diğer toplu taşıma modlarını kullanabilir. |
İsteğe bağlıdır. Tercih edilen toplu taşıma modlarını belirtin. Daha fazla bilgi |
| Toplu taşıma rotası için tercihleri belirtme | "transitPreferences": {routingPreference: "LESS_WALKING|FEWER_TRANSFERS"} |
İsteğe bağlıdır. Toplu taşıma rotası tercihlerini belirtme Daha fazla bilgi |
Örnek: Toplu taşıma rotası alma
Aşağıdaki örnekte, aşağıdaki parametrelerle toplu taşıma rotası alınmaktadır:
Trenle seyahat ve daha az yürüyüş tercihlerini belirtir.
Alternatif rotalar ister.
Toplu taşıma ayrıntılarını döndüren bir alan maskesi sağlar:
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'
Yanıtta, iki rota için route.legs.steps.transitDetails alan gösterilir:
{ "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 } }, {}, {}, {}, {}, {}, {} ] } ] } ] }