Toplu taşıma rotası, bölgedeki toplu taşıma seçeneklerini kullanarak yol tarifi sağlar. Toplu taşıma seçenekleri arasında otobüs, metro ve tren gibi seçenekler yer alabilir. Toplu taşıma rotaları genellikle toplu taşıma istasyonlarına gidiş, geliş ve istasyonlar arasındaki yürüyüş talimatlarını da içerir. Toplu taşıma rotaları genellikle birden fazla ulaşım aracıyla seyahat etmenizi gerektirdiğinden, rotayı nasıl istediğiniz 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çeneklerinin kullanıldığı rotalardan farklıdır. Aynı nesnelerin ve seçeneklerin tümünü isteyemezsiniz. Ayrıca 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 gezinme talimatı olarak kullanılır. Dolayısıyla her gezinme talimatı bir adımdır. Toplu taşıma rotası yanıtı, diğer seyahat modlarının bulunduğu rotalara çok benzer ancak birkaç önemli farkı vardır:
Farklılıkları iste | Yanıt farklılıkları |
---|---|
Ara yol işaretleri belirtemezsiniz. | Toplu taşıma ayrıntılarını içerir. |
Çevre dostu rotalar alınamıyor | Her seyahat modu için meta verileri içerir. Bu meta veriler, "stepsOverview" alanında ilgili seyahat modunun adımlarının özetini içerir (bu meta verileri istemek için "routes.legs.stepsOverview" alan maskesini kullanın). |
Trafik verilerinin nasıl ve eklenip eklenmeyeceğini belirtemez. | |
Kaçınılacak rota özellikleri belirtilemiyor | |
routingPreference için yalnızca transitPreferences belirtilebilir. 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
Kalkış ve varış noktanızı ayarlayın.
Ulaşım şeklini 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 istemek 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 bir ayak için başlangıç konumu | routes.legs.steps.startLocation |
Her bir etabın bitiş konumu | routes.legs.steps.endLocation |
Her adım için rota poli çizgisi | routes.legs.steps.polyline |
Her adım için 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 parametreler ayarlama
Toplu taşıma güzergahlarıyla ilgili parametreler şunlardır:
Bunun için | Bu parametreyi kullanın | Notlar |
---|---|---|
Toplu taşıma modunu seçme | travelMode: "TRANSIT" |
Zorunlu. Daha fazla bilgi edinin. |
Varış veya kalkış saati ayarlama | "arrivalTime": "yyyy-mm-ddThh:mm:ssZ"
VEYA "departureTime": "yyyy-mm-ddThh:mm:ssZ" |
İsteğe bağlı. arrival_time veya departure_time parametresini belirtebilirsiniz. Herhangi bir saat belirtilmezse departure_time varsayılan olarak mevcut yürütme süresine (now ) ayarlanır. Varış ve kalkış saatlerini yalnızca aşağıdaki zaman aralığında, referans olarak mevcut yürütme süresi (now ) kullanılarak ayarlayabilirsiniz:
|
Alternatif rotalar ekleme | "computeAlternativeRoutes": true |
İsteğe bağlı. Rotalar API'sinin, varsa 3'e kadar ek rota hesaplaması yapması için doğru değerine ayarlayın. Daha fazla bilgi |
Toplu taşıma türü için tercihleri belirtin | "transitPreferences": { allowedTravelModes: ["BUS","SUBWAY","TRAIN","LIGHT_RAIL","RAIL"]}
Not: Tercih ettiğiniz bir seyahat şeklini belirtirseniz döndürülen rotalar, tercih edilen seyahat şeklinin verimliliğine ve kullanılabilirliğine bağlı olarak diğer toplu taşıma araçlarını kullanmaya devam edebilir, hatta yalnızca diğer toplu taşıma araçlarını kullanabilir. |
İsteğe bağlı. Tercih edilen toplu taşıma ulaşım modlarını belirtin. Daha fazla bilgi |
Toplu taşıma rotası için tercihleri belirtme | "transitPreferences": {routingPreference: "LESS_WALKING|FEWER_TRANSFERS"} |
İsteğe bağlı. Toplu taşıma yönlendirme tercihlerini belirtin. Daha fazla bilgi |
Örnek: Toplu taşıma rotaları
Aşağıdaki örnekte, aşağıdaki parametrelerle toplu taşımada bir rota elde edilir:
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
alanları 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 } }, {}, {}, {}, {}, {}, {} ] } ] } ] }