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
veyaplaceId
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 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 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 birsnapToRoads
veyanearestRoads
isteği gönderebilir, ardından bunlarıspeedLimits
isteğine giriş olarak sağlayabilirsiniz. Aşağıdaki örnekte, iki yer kimliği içerenplaceId
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ğerKPH
veyaMPH
olarak ayarlanabilir. Varsayılan olarakKPH
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
veyaMPH
değerini döndürür.
snappedPoints
: Sabitlenmiş noktalar dizisi. Bu dizi yalnızca istek birpath
parametresi içeriyorsa mevcuttur. Her nokta aşağıdaki alanlardan oluşur:location
:latitude
velongitude
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ğerler0
'ten dizine eklenir. Bu nedenle,originalIndex
değeri4
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.