Toplu taşıma rotası alın

Toplu taşıma rotası, toplu taşıma için navigasyon talimatları sunar. bölgede mevcut seçeneklere sahip olmak. Toplu taşıma seçenekleri arasında otobüs, metro ve trenler gibi pek çok araç. Toplu taşıma rotası genellikle toplu taşıma istasyonları arasında yaya, uzaklık ve toplu taşıma durakları arasında geçiş yapabilirsiniz. çünkü toplu taşıma rotası genellikle birden fazla ulaşım şekli kullanarak seyahat etmeniz gerekir. ve yanıtın bazı bölümleri farklı.

Toplu taşıma rotalarının diğer rotalardan farkı

TRANSIT ulaşım yöntemini ayarlayarak istekte bulunduğunuz toplu taşıma rotaları, farklı ulaşım modu seçenekleri kullanan rotalardan. Aynı nesnelerin ve seçeneklerin tümünü isteyemezsiniz ve yanıt şunu döndürür: daha iyi performans göstermesidir.

Routes API'de adımlar sürekli olarak tek bir gezinme talimatıdır sizi bekliyor. Yani her gezinme talimatı bir adımdır. Toplu taşıma rota yanıtı, diğer ulaşım şekilleriyle rotalara çok benzer, ancak yalnızca birkaç anahtar farklar:

İstek farklılıkları Yanıt farklılıkları
Ara ara noktalar belirtemezsiniz. Toplu taşıma ayrıntılarını içerir.
Çevre dostu rotalar alınamıyor Her ulaşım şekli için, uygulamanız gereken adımların özetini içeren meta verileri içerir bu ulaşım şeklini "stepsOverview"te (bu meta verileri istemek için "routes.legs.stepsOverview" alan maskesi).
Trafik verilerinin nasıl ve nasıl dahil edileceği belirlenemiyor
Kaçınılacak rota özellikleri belirlenemiyor
Şunun için yalnızca transitPreferences belirtilebilir: routingPreference. Ayrıntılar için bkz. [TransitPreferences](reference/rest/v2/TransitPreferences).

Routes API'nin döndürdüğü yanıt hakkında daha fazla bilgi için bkz. Toplu taşıma rotası yanıtlarını inceleyin.

Toplu taşıma rotası almak için

  1. Kalkış ve varış noktalarınızı belirleyin.

  2. Ulaşım şeklini toplu taşıma olarak ayarlayın:

    travelMode: "TRANSIT"

  3. İstediğiniz yanıt alanlarını elde etmek için bir alan maskesi ekleyin. Görüntüleyin İhtiyacınız olan toplu taşıma rotası alanlarını isteyin.

  4. Gerekirse isteğe bağlı parametreler ayarlayın. Görüntüleyin Toplu taşıma rotası parametrelerini ayarlayın.

İ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 tablo toplu taşıma için önerilen bazı yanıtları içerir rotayı ve bunları istemek için kullanılacak alan maskesini gösterir.

Bu bilgileri istemek için Bu alan maskesini kullan
Tüm rota ayrıntıları routes.*
Tüm toplu taşıma ayrıntıları routes.legs.steps.transitDetails
Her ayak için başlangıç konumu routes.legs.steps.startLocation
Her ayak için bitiş konumu routes.legs.steps.endLocation
Her adım için çoklu çizgiyi yönlendir 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 şunları yapabiliyorsa sağlanır: tüm adımlar için toplu taşıma ücreti bilgilerini belirlemek.

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

Alan maskelerini ayarlama hakkında daha fazla bilgi için bkz. Döndürülecek alanları seçin.

Toplu taşıma rotası için parametreler ayarlama

Toplu taşıma rotalarıyla ilgili parametreler aşağıda verilmiştir:

Bunu yapmak için: Bu parametreyi kullan Notlar
Toplu taşıma modunu seçin travelMode: "TRANSIT" Zorunlu. Daha fazla bilgi edinin.
Varış veya kalkış saati ayarlayın "arrivalTime": "yyyy-mm-ddThh:mm:ssZ"

VEYA

"departureTime": "yyyy-mm-ddThh:mm:ssZ"
İsteğe bağlı. varış_saati veya çıkış_saati seçeneklerinden birini belirtebilirsiniz. Eğer iki saat de belirtilmez, departure_time varsayılan olarak geçerli yürütme zamanı (now). Varışı ayarlayabilir ve yalnızca sonraki zaman aralığında gerçekleşen kalkış saatleri referans olarak yürütme süresi (now):
  • now tarihinden önceki 7 gün dahil olmak üzere
  • now tarihinden sonraki 100 gün dahil
ziyaret edin. Zaman, RFC3339 UTC "Zulu" bölümünde zaman damgası olarak ifade edilir biçimindedir. Daha fazla bilgi
Alternatif rotaları dahil et "computeAlternativeRoutes": true İsteğe bağlı. Routes API'nin en fazla 3 işlem yapması için doğru değerine ayarlayın (varsa) ek rotalar. Daha fazla bilgi
Toplu taşıma türüyle ilgili tercihleri belirtin "transitPreferences": { allowedTravelModes: ["BUS","SUBWAY","TRAIN","LIGHT_RAIL","RAIL"]}

Not: Tercih edilen bir ulaşım şekli belirtirseniz, döndürülen rotalar kullanım durumuna bağlı olarak yalnızca diğer toplu taşıma modlarını rotanın verimliliği ve tercih edilen rotanın kullanılabilirliği yardımcı olur.

İsteğe bağlı. Tercih edilen toplu taşıma ulaşım şekillerini belirtin. Daha fazla bilgi
Toplu taşıma rotasıyla ilgili tercihleri belirtin "transitPreferences": {routingPreference: "LESS_WALKING|FEWER_TRANSFERS"} İsteğe bağlı. Toplu taşıma rotası tercihlerini belirtin. Daha fazla bilgi

Örnek: Toplu taşımada rota bulma

Aşağıdaki örnekte, aşağıdaki parametrelere sahip toplu taşıma rotası verilmektedir:

  • Trenle seyahat ve daha az yürüyüş için 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ıtta iki rota için route.legs.steps.transitDetails alanları gösteriliyor:

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