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 edilmez. 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 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. Bu istek aşağıdaki 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, dikey çizgi karakteriyle ayrılmalıdır: "|".path
parametresini sağladığınızda API, yolu ilk olarak bir aracın gidebileceği en olası yola ekler (snapToRoads
isteğinde olduğu gibi) ve ardından ilgili yol segmentinin 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 çiftine sahippath
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üne değil, bir yol segmentine atıfta bulunduğundan emin olun. Her istekte 100'e kadar yer kimliği iletebilirsiniz. API, sağlanan yer kimliklerinde yol sabitleme işlemi yapmaz. Yanıt, istekteki her yer kimliği için bir hız sınırı içeriyor. İlgili yer kimliklerini bulmak için birsnapToRoads
veyanearestRoads
isteği gönderebilir ve ardından bunlarıspeedLimits
isteğinde 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, Roads API öğesine her istek gönderdiğinde her isteğe bir API anahtarı ekleyerek kendini tanımlamalıdır. Nasıl anahtar alacağınızı öğrenin.
İsteğe bağlı parametreler
units
: Hız sınırlarının kilometre veya mil/saat cinsinden döndürülme durumu. 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 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
: İlgili yol segmenti için hız sınırı.units
:KPH
veyaMPH
değerini döndürür.
snappedPoints
— bir dizi kesilmiş nokta. Bu dizi, yalnızca isteğin birpath
parametresi içermesi durumunda mevcuttur. Her nokta, aşağıdaki alanlardan oluşur:location
,latitude
velongitude
değerlerini içeriyor.originalIndex
: Orijinal istekteki karşılık gelen değeri gösteren bir tam sayı. İstekteki her bir değer, yanıtta geçici bir değerle eşlenmelidir. Bu değerler0
üzerinden dizine eklenir. DolayısıylaoriginalIndex
değeri4
olan bir nokta,path
parametresine iletilen 5. enlem/boylamın tutturulan 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
, söz konusu yol segmentinde 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 şehrinde Vasco da Gama köprüsünden geçen bir yoldaki belirtilen enlem/boylam çiftlerine en yakın olan her bir 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 puan yetersizliğiyle ilgili uyarı mesajına dikkat edin. Rastgele noktalarda en yakın yol segmentleri için hız sınırı talep ediyorsanız bunun yerine nearestRoads
uç noktasından alınan yer kimlikleriyle speedLimits
çağırmanız gerekir.
Yer kimlikleri kullanılan örnek istek
Enlem/boylam çiftleri 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ği ile temsil edilen yol segmentinin 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 şehrinde Vasco da Gama köprüsünden geçen bazı yol segmentleri için hız sınırları talep edilmektedir.
İ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 konumlarını 5-15 dakikalık aralıklarla örneklemenizi öneririz (tam değer, bir öğenin seyahat hızına bağlıdır). Bir öğe sabitse 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
verilerinin eksik olmasının en yaygın nedeni, yol segmenti olmayan bir yere hız sınırını talep etmektir.
Yukarıdaki örnekte kavramları göstermek için Vasco da Gama köprüsü kullanılmıştır; köprü, Rio Tejo üzerinden geçen E90 kara yolunu destekler. Köprünün yer kimliği ChIJUzt97ZEwGQ0RM1JzQfqoDtU'dur. Yukarıdaki yanıtta verilen 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 segmentini belirtmediğinden yanıtta speedLimits
dizisinde yalnızca iki hız sınırı olur. Dahası, yer kimliklerinin hiçbiri yol segmentlerine yönelik 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üne değil, bir yol segmentine atıfta bulunduğundan emin olun. Her bir yol segmentleri için yer kimlikleri en iyi şekilde, snapToRoads
veya nearestRoads
istekleri kullanılarak alınır. Bu isteklerden biri, tek bir çağrıdan birden fazla yer kimliği döndürebilir.