Hız sınırları

Roads API, belirli bir yol segmenti için belirtilen hız sınırını döndürür. Değişken hız sınırlarına sahip yol segmentlerinde, segmentin varsayılan hız sınırı döndürülür.

Roads API tarafından döndürülen hız sınırı verilerinin doğruluğu garanti edilemez. Sağlanan hız sınırı verileri anlık değildir ve tahmini, yanlış, eksik ve/veya güncelliğini yitirmiş olabilir. Hız sınırı verilerinin kullanılabildiği bölgeleri görmek için kapsam ayrıntılarına bakın.

İstekler

Hız sınırı isteği HTTPS üzerinden gönderilmelidir ve aşağıdaki biçimdedir:

https://roads.googleapis.com/v1/speedLimits?parameters&key=YOUR_API_KEY

Parametre kullanımı

Gerekli parametreler

  • path veya placeId parametresi.
    • path: Bir yolu temsil eden en fazla 100 enlem/boylam çiftinin listesi. Enlem ve boylam değerleri virgülle ayrılmalıdır. Enlem/boylam çiftleri, boru karakteriyle ("|") ayrılmalıdır. path parametresini sağladığınızda API, önce bir aracın seyahat etmesi en olası yola (snapToRoads isteği için yaptığı gibi) yol ekler, ardından ilgili yol segmentinin hız sınırını belirler. API'nin yolu yakalamasını istemiyorsanız aşağıda açıklandığı gibi bir placeId parametresi iletmeniz gerekir. Aşağıdaki örnekte, üç enlem/boylam çifti içeren path parametresi gösterilmektedir: path=60.170880,24.942795|60.170879,24.942796|60.170877,24.942796.
    • placeId: Bir veya daha fazla yol segmentini temsil eden yer kimlikleri. Her bir yer kimliğinin farklı bir yer türüne değil, yol segmentine atıfta bulunduğundan emin olun. Her istekle en fazla 100 yer kimliği iletebilirsiniz. API, sağlanan yer kimliklerinde yol yakalama işlemi gerçekleştirmez. Yanıt, istekteki her yer kimliği için bir hız sınırı içerir. İlgili yer kimliklerini bulmak için bir snapToRoads veya nearestRoads isteği gönderebilir, ardından bunları speedLimits isteğine giriş olarak sağlayabilirsiniz. Aşağıdaki örnekte, iki yer kimliği içeren placeId parametresi gösterilmektedir: placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU
  • key: Uygulamanızın API anahtarı. Uygulamanız, Roads API'e her istek gönderdiğinde isteğine bir API anahtarı ekleyerek kendini tanımlamalıdır. Anahtar edinme hakkında bilgi edinin.

İsteğe bağlı parametreler

  • units: Hız sınırlarının kilometre/saat mi yoksa mil/saat mi cinsinden döndürüleceğini belirtir. Bu değer KPH veya MPH olarak ayarlanabilir. Varsayılan olarak KPH değerine ayarlanır.

Yanıtlar

speedLimits yanıtında aşağıdaki öğeler bulunabilir:

  • speedLimits: Yol meta verilerinden oluşan bir dizi. Her öğe aşağıdaki alanlardan oluşur:
    • placeId: Bir yerin benzersiz tanımlayıcısıdır. Roads API tarafından döndürülen tüm yer kimlikleri yol segmentlerine karşılık gelir.
    • speedLimit: Söz konusu yol segmentinin hız sınırı.
    • units: KPH veya MPH değerini döndürür.
  • snappedPoints: Sabitlenmiş noktalar dizisi. Bu dizi yalnızca istek bir path parametresi içeriyorsa mevcuttur. Her nokta aşağıdaki alanlardan oluşur:
    • location: latitude ve longitude değerlerini içerir.
    • originalIndex: Orijinal istekteki ilgili değeri belirten bir tam sayı. İstekteki her değer, yanıttaki bir sabitlenmiş değerle eşlenmelidir. Bu değerler 0'ten dizine eklenir. Bu nedenle, originalIndex değeri 4 olan bir nokta, path parametresine iletilen 5. enlem/boylam değerinin sabitlenmiş değeri olur.
    • placeId: Bir yerin benzersiz tanımlayıcısıdır. Roads API tarafından döndürülen tüm yer kimlikleri yol segmentlerine karşılık gelir. placeId, ilgili yol segmentindeki hız sınırını belirlemek için bir hız sınırı isteğinde iletilebilir.
  • warning_message: Kullanıcının görebileceği bir uyarı içeren dize.

Yol kullanan örnek istek

Bu istek, Portekiz'in Lizbon kentindeki Vasco da Gama köprüsünü geçen bir yolda belirtilen enlem/boylam çiftlerine en yakın her yol segmentinin hız sınırını alır.

İstek

https://roads.googleapis.com/v1/speedLimits?path=38.75807927603043,-9.03741754643809|38.6896537,-9.1770515|41.1399289,-8.6094075&key=YOUR_API_KEY

Yanıt

{
  speedLimits:
  [
    {
      placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE",
      speedLimit: 105,
      units: "KPH"
    },
    {
      placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU",
      speedLimit: 70,
      units: "KPH"
    },
    {
      placeId: "ChIJJ4vQRudkJA0RpednU70A-5M",
      speedLimit: 55,
      units: "KPH"
    }
  ],
  snappedPoints:
  [
    {
      location:
      {
        latitude: 38.75807927603043,
        longitude: -9.037417546438084
      },
      originalIndex: 0,
      placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE"
    },
    {
      location:
      {
        latitude: 38.689653701836896,
        longitude: -9.177051486847693
      },
      originalIndex: 1,
      placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU"
    },
    {
      location:
      {
        latitude: 41.13993011767777,
        longitude: -8.609400794783655
      },
      originalIndex: 2,
      placeId: "ChIJJ4vQRudkJA0RpednU70A-5M"
    }
  ],
  warningMessage: "Input path is too sparse. You should provide a path where consecutive points are closer to each other. Refer to the 'path' parameter in Google Roads API documentation."
}

Yukarıdaki yanıtta nokta seyrekliğiyle ilgili uyarı mesajına dikkat edin. İsteğe bağlı noktalarda en yakın yol segmentleri için hız sınırı istiyorsanız bunun yerine nearestRoads uç noktasından alınan yer kimlikleriyle speedLimits'ü çağırmanız gerekir.

Yer kimliklerini kullanan örnek istek

Enlem/boylam çiftleri kullanmak yerine yol segmentlerinin yer kimliklerini iletebilirsiniz. snapToRoads veya nearestRoads isteklerini kullanarak yol segmentleri için yer kimlikleri almanızı öneririz. Yer kimliklerini ilettiğinizde API, her yer kimliği tarafından temsil edilen yol segmentinin hız sınırını döndürür. API, sağlanan yer kimliklerine yol yakalama işlemi uygulamaz.

Aşağıdaki örnekte, Portekiz'in Lizbon şehrindeki Vasco da Gama köprüsünü geçen yol segmentlerinin bazılarının hız sınırları istenir.

İstek

https://roads.googleapis.com/v1/speedLimits?placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU&placeId=ChIJJ4vQRudkJA0RpednU70A-5M&key=YOUR_API_KEY

Yanıt

{
  "speedLimits": [
    {
      placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE",
      speedLimit: 105,
      units: "KPH"
    },
    {
      placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU",
      speedLimit: 70,
      units: "KPH"
    },
    {
      placeId: "ChIJJ4vQRudkJA0RpednU70A-5M",
      speedLimit: 55,
      units: "KPH"
    }
  ]
}

Kullanım önerileri

Hız Sınırı hizmetine yapılan çağrı sayısını en aza indirmek için öğelerinizin konumlarını 5 ila 15 dakikalık aralıklarla örneklemenizi öneririz (tam değer, bir öğenin hareket hızına bağlıdır). Bir öğe sabitse tek bir konum örneği yeterlidir (birden fazla çağrı yapılmasına gerek yoktur).

Genel gecikmeyi en aza indirmek için bir mobil öğenin konumu her alındığında API'yi çağırmaktansa, biraz veri topladıktan sonra Hız Sınırı hizmetini çağırmanızı öneririz.

Bazı/tüm hız sınırlamaları neden eksik?

speedLimits değerinin eksik olmasının en yaygın nedeni, yol segmenti olmayan bir yerin hız sınırının istenmesidir.

Yukarıdaki örnekte, kavramları açıklamak için Vasco da Gama köprüsü kullanılmıştır. Bu köprü, Rio Tejo'nun üzerinden geçen E90 karayolunu desteklemektedir. Köprünün yer kimliği ChIJUzt97ZEwGQ0RM1JzQfqoDtU'dur. Yukarıdaki yanıttaki ilk yol segmenti E90 yolunun bir parçasıdır ve ChIJX12duJAwGQ0Ra0d4Oi4jOGE yer kimliğine sahiptir. Örnek isteğinde, yol yer kimliğini köprünün yer kimliğiyle değiştirirseniz köprünün yer kimliği tek bir yol segmentine atıfta bulunmadığından yanıtta speedLimits dizisinde yalnızca iki hız sınırı olur. Ayrıca, yer kimliklerinden hiçbiri yol segmentleri için değilse yanıtta hız sınırı yer almaz.

Yer kimlikleri kullanarak hız sınırı istekleri gönderirken her yer kimliğinin farklı bir yer türüne değil, bir yol segmentine işaret ettiğinden emin olun. Ayrı yol segmentlerinin yer kimlikleri en iyi şekilde snapToRoads veya nearestRoads istekleri kullanılarak alınır. Bu isteklerin her ikisi de tek bir çağrıdan birden fazla yer kimliği döndürebilir.