Toplu taşıma rotası alın

Avrupa Ekonomik Alanı'ndaki (AEA) geliştiriciler

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

  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 bir 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ı 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: 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 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:
  • now tarihinden 7 gün öncesine kadar (7 gün öncesi dahil)
  • now tarihinden sonraki 100 gün boyunca
Zaman, RFC3339 UTC "Zulu" biçiminde bir zaman damgası olarak ifade edilir. Daha fazla bilgi

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