Roads API, belirli yol segmentleri için hız sınırını döndürür. Değişken hız sınırlarına sahip yol segmentlerinde, otomobiller için o segmentteki maksimum 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 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ırları için istekleri HTTPS kullanarak aşağıdaki biçimde gönderin:
https://roads.googleapis.com/v1/speedLimits?parameters&key=YOUR_API_KEYParametre kullanımı
Gerekli parametreler
pathveyaplaceIdparametresi.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, dikey çizgi karakteriyle ("|") ayrılmalıdır.pathparametresini sağladığınızda API, önce yolu bir aracın seyahat etme olasılığı en yüksek yola sabitler (snapToRoadsisteğ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 birplaceIdparametresi iletmeniz gerekir. Aşağıdaki örnekte, üç enlem/boylam çifti içerenpathparametresi 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 ifade ettiğinden emin olun. Her istekte en fazla 100 yer kimliği iletebilirsiniz. Yanıtta, istekteki her yer kimliği için bir hız sınırı bulunur.API, sağlanan yer kimliklerinde yola tutturma işlemi gerçekleştirmez. İlgili yer kimliklerini bulmak için
snapToRoadsveyanearestRoadsisteği gönderebilir, ardından bunlarıspeedLimitsisteğine giriş olarak sağlayabilirsiniz. Aşağıdaki örnekte, iki yer kimliği içerenplaceIdparametresi gösterilmektedir:placeId=ChIJs5ydyTiuEmsR0fRSlU0C7k0&placeId=ChIJW__r4ERXzpQRgkeRL6P0m3Y
key: Uygulamanızın API anahtarı. Uygulamanız, Roads API hizmetine her istek gönderdiğinde her isteğe bir API anahtarı ekleyerek kendisini 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/saat veya mil/saat cinsinden döndürülüp döndürülmeyeceğini belirtir. Bu değerKPHveyaMPHolarak ayarlanabilir. Varsayılan değerKPH'dir.
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ı. 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:KPHveyaMPHdeğerini döndürür.
snappedPoints: Yakalanan noktalar dizisi. Bu dizi yalnızca istektepathparametresi varsa bulunur. Her nokta aşağıdaki alanlardan oluşur:location:latitudevelongitudedeğeri içerir.originalIndex: Orijinal istekteki karşılık gelen değeri gösteren bir tam sayı. İstekteki her değer, yanıttaki bir yakalanan değerle eşleşmelidir. Bu değerler0değerinden dizine eklenir. Bu nedenle,originalIndexdeğeri4olan bir nokta,pathparametresine iletilen 5. enlem/boylamın sabitlenen değeri olur.placeId: Bir yerin benzersiz tanımlayıcısı. Roads API tarafından döndürülen tüm yer kimlikleri yol segmentlerine karşılık gelir.placeId, bir hız sınırı isteğinde iletilerek ilgili yol segmentindeki hız sınırını belirlemek için kullanılabilir.
warning_message: Kullanıcıya gösterilen bir uyarı içeren dize.
Yol kullanan örnek istek
Bu istek, Portekiz'in Lizbon kentindeki Vasco da Gama köprüsünden 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_KEYYanı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ğine ilişkin uyarı mesajına dikkat edin. Rastgele noktalardaki en yakın yol segmentleri için hız sınırlarını istiyorsanız speedLimits yöntemini nearestRoads uç noktasından alınan yer kimlikleriyle çağırmanız gerekir.
Yer kimliklerini kullanan örnek istek
Enlem/boylam çiftleri kullanmak yerine yol segmentlerinin yer kimliklerini iletebilirsiniz. Yol segmentleri için yer kimliklerini snapToRoads veya nearestRoads isteklerini kullanarak almanızı öneririz. Yer kimliklerini ilettiğinizde API, her yer kimliğiyle temsil edilen yol segmentinin hız sınırını döndürür. API, sağlanan yer kimliklerine herhangi bir yola tutturma işlemi uygulamaz.
Aşağıdaki örnekte, Portekiz'in Lizbon şehrindeki Vasco da Gama köprüsünden geçen bazı yol segmentleri 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_KEYYanı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 ila 15 dakikalık aralıklarla örneklemenizi öneririz (tam değer, öğenin hareket hızına bağlıdır). Öğe sabitse tek bir konum örneği yeterlidir (birden fazla çağrı yapmaya gerek yoktur).
Genel gecikmeyi en aza indirmek için, 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.
Neden bazı/tüm hız sınırları 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ı göstermek için Vasco da Gama köprüsü kullanılmıştır. Köprü, Rio Tejo üzerinden geçen E90 yolunu 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 yer kimliği ChIJX12duJAwGQ0Ra0d4Oi4jOGE'dir. Örnek istekte, yolun yer kimliğini köprünün yer kimliğiyle değiştirirseniz köprünün yer kimliği tek bir yol segmentini ifade etmediği için yanıttaki 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ı bilgisi yer almaz.
Yer kimliklerini kullanarak hız sınırı istekleri gönderirken her yer kimliğinin farklı bir yer türünü değil, bir yol segmentini ifade ettiğinden emin olun. Ayrı yol segmentlerinin yer kimlikleri, tek bir çağrıdan birden fazla yer kimliği döndürebilen snapToRoads veya nearestRoads istekleri kullanılarak en iyi şekilde alınır.
Bir yol segmentinde arabalar ve kamyonlar için ayrı hız sınırları varsa ne olur?
Roads API, yalnızca otomobiller için yayınlanan maksimum hız sınırını döndürür.