Toplu taşıma rotası alın

Avrupa Ekonomik Alanı (AEA) geliştiricileri

Toplu taşıma rotası, bölgedeki toplu taşıma seçeneklerini kullanarak yol tarifi 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 yürüme, istasyonlardan yürüme ve istasyonlar arasında yürüme talimatlarını da içerir. Toplu taşıma rotası genellikle birden fazla ulaşım şekliyle 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'u 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 navigasyon talimatıdır. Bu nedenle, her gezinme talimatı bir adımdır. Toplu taşıma rotası yanıtı, diğer ulaşım şekillerindeki rotalara çok benzer. Ancak birkaç önemli fark vardır:

Farklılıkları iste Yanıt farklılıkları
Ara yol noktaları belirtemezsiniz. Toplu taşıma bilgilerini içerir.
Çevre dostu rotalar alınamıyor Her seyahat modu için, bu seyahat modunun adımlarının özetini içeren meta verileri içerir. Bu meta verileri istemek için `stepsOverview` alanını kullanın (`routes.legs.stepsOverview` alan maskesini kullanın).
Trafik verilerinin nasıl ve dahil edilip edilmeyeceğini belirleyemezsiniz.
Kaçınılacak rota özellikleri belirtilemiyor
Yalnızca routingPreference için 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

  1. Başlangıç ve varış noktanızı ayarlayın.

  2. Seyahat modunu toplu taşıma olarak ayarlayın:

    travelMode: "TRANSIT"

  3. İstediğiniz yanıt alanlarını almak için alan maskesi ekleyin. İhtiyacınız olan toplu taşıma rotası alanlarını isteme başlıklı makaleyi inceleyin.

  4. 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ı isteyin

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 üzere 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 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: transitFare yalnızca API, tüm adımlar için toplu taşıma ücreti bilgilerini belirleyebiliyorsa sağlanır.

Süre ve mesafe için yerelleştirilmiş metin routes.localizedValues

Alan maskeleri 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çin 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'ı belirtebilirsiniz. İki saat de belirtilmezse departure_time, varsayılan olarak mevcut yürütme zamanı (now) olur. Varış ve kalkış saatlerini yalnızca aşağıdaki zaman aralığında ayarlayabilirsiniz. Referans olarak mevcut yürütme zamanı (now) kullanılır:
  • now tarihinden önceki 7 gün dahil
  • now tarihinden sonraki 100 gün dahil
Zaman, RFC3339 UTC "Zulu" biçiminde zaman damgası olarak ifade edilir. Daha fazla bilgi

Not: Toplu taşıma tarifeleri sık sık değişir, mevcut toplu taşıma yolculukları zaman içinde değişebilir ve çok önceden yapılan tahminler için tutarlı sonuçlar sağlama garantisi verilmez.

Alternatif rotaları dahil et "computeAlternativeRoutes": true İsteğe bağlıdır. Kullanılabilir olduğunda Compute Routes'un 3 ek rota hesaplaması için true olarak ayarlayın. Daha fazla bilgi
Toplu taşıma türüyle ilgili tercihleri belirtme "transitPreferences": { allowedTravelModes: ["BUS","SUBWAY","TRAIN","LIGHT_RAIL","RAIL"]}

Not: Tercih edilen bir ulaşım şekli belirtirseniz döndürülen rotalar, tercih edilen ulaşım şeklinin rotadaki verimliliğine ve kullanılabilirliğine bağlı olarak diğer toplu taşıma şekillerini kullanmaya devam edebilir, hatta yalnızca diğer toplu taşıma şekillerini kullanabilir.

İsteğe bağlıdır. Tercih edilen toplu taşıma seyahat 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 belirtin. Daha fazla bilgi

Örnek: Toplu taşımada rota alma

Aşağıdaki örnekte, toplu taşıma araçlarıyla gidilebilecek bir rota aşağıdaki parametrelerle alınır:

  • Trenle seyahat ve daha az yürüyüşle ilgili tercihleri 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ıt, iki rota için route.legs.steps.transitDetails alanını gösteriyor:

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