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. 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 tanımlanır. Bu nedenle, her gezinme talimatı bir adımdır. Toplu taşıma rotası yanıtı, diğer seyahat modlarındaki 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 bilgilerini içerir.
Çevre dostu rotalar alınamıyor Her seyahat modu için, bu seyahat moduna ait adımların özetini içeren meta verileri içerir. Bu meta veriler, `stepsOverview` içinde yer alır (bu meta verileri istemek için `routes.legs.stepsOverview` alan maskesini kullanın).
Trafik verilerinin nasıl ve dahil edilip edilmeyeceği belirtilemez.
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. Kalkış ve varış noktanızı ayarlayın.

  2. Ulaşım şeklini 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ı isteyin

Alan maskelerini kullanarak ihtiyacınız olan toplu taşıma rotası alanlarını isteyin. Aşağıdaki tabloda, toplu taşıma rotasıyla ilgili bazı önerilen 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 etap için başlangıç konumu routes.legs.steps.startLocation
Her etap için 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 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
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'ı 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 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 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 etme "computeAlternativeRoutes": true İsteğe bağlı. Mevcut olduğunda Compute Routes'un 3'e kadar ek rota hesaplaması için true olarak ayarlayın. Daha fazla bilgi
Toplu taşıma türü için tercihleri belirtin "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 veya yalnızca diğer toplu taşıma şekillerini kullanabilir.

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

Örnek: Toplu taşımayla rota alma

Aşağıdaki örnek, toplu taşıma araçlarıyla gidilebilecek bir rotayı aşağıdaki parametrelerle alı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 alanları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
          }
        },
        {},
        {},
        {},
        {},
        {},
        {}
        ]
      }
    ]
  }
]
}