Toplu taşıma rotası alın

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, tren vb. yer alır. Toplu taşıma rotası genellikle toplu taşıma istasyonlarına, varış noktalarına ve istasyonlar arasında geçişle ilgili talimatlar da içerir. Toplu taşıma rotası genellikle birden fazla ulaşım şekli 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ı

TRANSIT ulaşım şekli ayarlayarak istediğiniz toplu taşıma rotaları, farklı ulaşım modu seçeneklerinin kullanıldığı rotalardan farklıdır. Aynı nesnelerin ve seçeneklerin tümünü isteyemezsiniz ve yanıt, diğer rotalarla karşılaştırıldığında farklı alanlar döndürür.

Routes API'de adımlar, tüm seyahat türlerinde tutarlı bir şekilde tek bir gezinme talimatıdır. Yani her gezinme talimatı bir adımdır. Toplu taşıma rotası yanıtı, diğer ulaşım şekillerini kullanan rotalara çok benzer. Aralarında birkaç temel fark vardır:

İ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 "stepsOverview" bölümünde her ulaşım şekline dair adımların özetini içeren meta verileri içerir (bu meta verileri istemek için "routes.legs.stepsOverview" alan maskesini kullanın).
Trafik verilerinin nasıl ve nasıl dahil edileceği belirlenemiyor
Kaçınılacak rota özellikleri belirlenemiyor
routingPreference için yalnızca transitPreferences belirtilebilir. Ayrıntılar için [TransitPreferences](reference/rest/v2/TransitPreferences) sayfasına bakın.

Routes API'nin döndürdüğü yanıt hakkında daha fazla bilgi edinmek 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ış 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. İhtiyacınız olan toplu taşıma rotası alanlarını isteme bölümüne göz atın.

  4. Gerekirse isteğe bağlı parametreler ayarlayın. Toplu taşıma rotası için parametreleri ayarlama bölümünü 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 için kullanılacak alan maskesi bulunmaktadır.

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 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 bölümüne bakın.

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. İki saat de belirtilmezse departure_time için varsayılan olarak geçerli yürütme zamanı (now) kullanılır. Varış ve kalkış saatlerini yalnızca aşağıdaki zaman aralığında ayarlayabilirsiniz. Referans olarak geçerli yürütme zamanını (now) kullanabilirsiniz:
  • now tarihinden önceki 7 gün dahil olmak üzere
  • now tarihinden sonraki 100 gün dahil
Zaman, RFC3339 UTC "Zulu" biçiminde bir zaman damgası olarak ifade edilir. Daha fazla bilgi
Alternatif rotaları dahil et "computeAlternativeRoutes": true İsteğe bağlı. Routes API'nin, mevcut olduğunda 3 ek rota hesaplamasına izin vermek için değeri true olarak ayarlayın. 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 geri gelen rotalar diğer toplu taşıma modlarını kullanmaya devam edebilir. Hatta rotanın verimliliğine ve tercih edilen seyahatin kullanılabilirliğine bağlı olarak, yalnızca diğer toplu taşıma modları kullanılabilir.

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