Roads API, belirli bir yol segmenti için yayınlanan hız sınırını döndürür. Değişken hız sınırlarına sahip yol segmentleri söz konusu olduğunda, segment için 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 gerçek zamanlı değildir ve tahmini, yanlış, eksik ve/veya güncel olmayabilir. Hız sınırı verilerinin mevcut olduğu 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. İstek şu biçimdedir:
https://roads.googleapis.com/v1/speedLimits?parameters&key=YOUR_API_KEY
Parametre kullanımı
Gerekli parametreler
path
veyaplaceId
parametresi.path
— Bir yolu temsil eden en fazla 100 enlem/boylam çiftinden oluşan liste. Enlem ve boylam değerleri virgülle ayrılmalıdır. Enlem/boylam çiftleri, düz çizgi karakteriyle ayrılmalıdır: "|".path
parametresini sağladığınızda API ilk olarak yolu bir aracın gidebileceği en olası yola ekler (snapToRoads
isteğinde olduğu gibi) ve ardından ilgili yol segmenti için hız sınırını belirler. API'nin yolu tutturmasını istemiyorsanız aşağıda açıklandığı gibi birplaceId
parametresi iletmeniz gerekir. Aşağıdaki örnekte üç enlem/boylam çifti içerenpath
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 yer kimliğinin farklı bir yer türünü değil, bir yol segmentini belirttiğinden emin olun. Her istekte en fazla 100 yer kimliği iletebilirsiniz. API, sağlanan yer kimliklerinde yol düzeltme işlemi yapmaz. Yanıt, istekteki her yer kimliği için bir hız sınırı içerir. İlgili yer kimliklerini bulmak için birsnapToRoads
veyanearestRoads
isteği gönderebilir ve ardından bunlarıspeedLimits
isteğine giriş olarak sağlayabilirsiniz. Aşağıdaki örnekte iki yer kimliğine sahipplaceId
parametresi gösterilmektedir:placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU
key
: Uygulamanızın API anahtarı. Uygulamanız, her isteğe bir API anahtarı ekleyerek Roads API öğesine her istek gönderdiğinde kendini tanımlamalıdır. Nasıl anahtar alacağınızı öğrenin.
İsteğe bağlı parametreler
units
— Hız sınırlarını kilometre veya mil cinsinden döndürme seçeneği. Bu,KPH
veyaMPH
olarak ayarlanabilir. Varsayılan olarakKPH
değerine ayarlanır.
Yanıtlar
speedLimits
yanıtında aşağıdaki öğeler bulunabilir:
speedLimits
: Yol meta verileri dizisi. Her öğe aşağıdaki alanlardan oluşur:placeId
: Bir yere ait benzersiz tanımlayıcı. Roads API tarafından döndürülen tüm yer kimlikleri, yol segmentlerine karşılık gelir.speedLimit
: Yolun ilgili bölümü için hız sınırı.units
:KPH
veyaMPH
değerini döndürür.
snappedPoints
- bir dizi tutturulan noktalar. Bu dizi, yalnızca istek birpath
parametresi içeriyorsa kullanılabilir. Her nokta aşağıdaki alanlardan oluşur:location
,latitude
velongitude
değerlerini içerir.originalIndex
: Orijinal istekteki karşılık gelen değeri gösteren bir tam sayı. İstekteki her değer, yanıtta geçici bir değerle eşlenmelidir. Bu değerler,0
konumundan dizine eklenir. DolayısıylaoriginalIndex
olan4
bir nokta,path
parametresine geçirilen 5. enlem/boylamın tutturulan değeri olur.placeId
: Bir yere ait benzersiz tanımlayıcı. Roads API tarafından döndürülen tüm yer kimlikleri, yol segmentlerine karşılık gelir.placeId
, söz konusu yol segmentinde hız sınırını belirlemek için bir hız sınırı isteğinde geçirilebilir.
warning_message
: Kullanıcının görebileceği bir uyarı içeren dize.
Yol kullanan örnek istek
Bu istek, Portekiz'in Lizbon şehrindeki Vasco da Gama köprüsünden geçen bir yoldaki belirtilen enlem/boylam çiftlerine en yakın olan her yol segmenti için 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 azlığı ile ilgili uyarı mesajına dikkat edin. İsteğe bağlı noktalardaki en yakın yol segmentleri için hız sınırı talep ediyorsanız bunun yerine nearestRoads
uç noktasından aldığınız yer kimlikleriyle speedLimits
çağırmanız gerekir.
Yer kimlikleri kullanılan örnek istek
Enlem/boylam çiftlerini kullanmak yerine, yol segmentlerinin yer kimliklerini aktarabilirsiniz. snapToRoads
veya nearestRoads
isteklerini kullanarak yol segmentleri için yer kimlikleri almanızı öneririz. Yer kimliklerini geçtiğinizde API, her bir yer kimliğinin temsil ettiği yol segmenti için hız sınırını döndürür. API, sağlanan yer kimliklerine herhangi bir yol tutturma işlemi uygulamaz.
Aşağıdaki örnekte, Portekiz'in Lizbon şehrindeki Vasco da Gama köprüsünden geçen bazı yol bölümleri için hız sınırları istenmektedir.
İ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ıların hacmini en aza indirmek için öğelerinizin konumundan 5-15 dakikalık aralıklarla örnekleme yapmanızı öneririz (tam değer, bir öğenin bulunduğu hıza bağlıdır). Bir öğe hareketsizse tek bir konum örneği yeterlidir (birden fazla çağrı yapmaya gerek yoktur).
Genel gecikmeyi en aza indirmek için bir mobil öğenin konumu her alındığında API'yi çağırmak yerine, bir miktar veri topladıktan sonra Hız Sınırı hizmetini çağırmanızı öneririz.
Hız sınırlarının bazıları/tümü neden eksik?
speedLimits
bilgisinin eksik olmasının en yaygın nedeni, yolun bir bölümü olmayan bir yerde hız sınırı istenmesidir.
Yukarıdaki örnekte kavramları açıklamak için Vasco da Gama köprüsü kullanılmıştır; köprü, Rio Tejo üzerindeki E90 kara yolunu destekler. Köprünün yer kimliği ChIJUzt97ZEwGQ0RM1JzQfqoDtU vardır. Yukarıdaki yanıttaki ilk yol segmenti E90 yolunun bir parçasıdır ve ChiJX12duJAwGQ0Ra0d4Oi4jOGE yer kimliğine sahiptir. Örnek istekte yol yeri kimliğini köprünün yer kimliğiyle değiştirirseniz yanıtta, köprünün yer kimliği tek bir yol segmentine ait olmadığından speedLimits
dizisinde yalnızca iki hız sınırı olur. Dahası, yer kimliklerinin hiçbiri yol segmentleri için değilse yanıtta hız sınırı bulunmaz.
Yer kimliklerini kullanarak hız sınırı isteğinde bulunurken her yer kimliğinin farklı bir yer türünü değil, bir yol segmentini belirttiğinden emin olun. Bağımsız yol segmentlerinin yer kimliklerinin alınması en iyi şekilde, snapToRoads
veya nearestRoads
istekleri kullanılarak alınır. Bu isteklerin her biri tek bir çağrıdan birden fazla yer kimliği döndürebilir.