Toplu taşıma rotası alın

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. Bu nedenle, 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

  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ı 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: 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 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 şu zaman aralığında, referans olarak mevcut yürütme süresi (now) kullanılarak ayarlayabilirsiniz:
  • now tarihinden önceki 7 gün içinde
  • now tarihinden sonraki 100 gün boyunca
Zaman, RFC3339 UTC "Zulu" biçiminde bir zaman damgası olarak ifade edilir. Daha fazla bilgi
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şımada rota alma

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