Roads API से, सड़क के किसी सेगमेंट के लिए पोस्ट की गई स्पीड लिमिट की जानकारी मिलती है. अगर सड़क के सेगमेंट के लिए अलग-अलग गति सीमाएं हैं, तो सेगमेंट के लिए डिफ़ॉल्ट गति सीमा दिखाई जाती है.
Roads API से मिली, गति सीमा की जानकारी के सटीक होने की गारंटी नहीं दी जा सकती. गति सीमा का डेटा रीयल-टाइम में नहीं दिया जाता है. यह अनुमानित, गलत, अधूरा या पुराना हो सकता है. कवरेज की जानकारी देखें. इससे आपको पता चलेगा कि किन इलाकों में रफ़्तार की सीमा से जुड़ा डेटा उपलब्ध है.
अनुरोध
एचटीटीपीएस का इस्तेमाल करके, स्पीड लिमिट के लिए अनुरोध भेजें. अनुरोध इस तरह से भेजें:
https://roads.googleapis.com/v1/speedLimits?parameters&key=YOUR_API_KEYपैरामीटर के इस्तेमाल से जुड़ी जानकारी
ज़रूरी पैरामीटर
pathयाplaceIdपैरामीटर.path— यह अक्षांश/देशांतर के 100 जोड़ों की सूची होती है. यह किसी पाथ को दिखाती है. अक्षांश और देशांतर की वैल्यू को कॉमा लगाकर अलग किया जाना चाहिए. अक्षांश/देशांतर के जोड़े को पाइप वर्ण "|" से अलग किया जाना चाहिए.pathपैरामीटर की वैल्यू देने पर, एपीआई सबसे पहले पाथ को उस सड़क पर स्नैप करता है जिस पर वाहन के चलने की सबसे ज़्यादा संभावना होती है. ऐसा वहsnapToRoadsअनुरोध के लिए भी करता है. इसके बाद, वह सड़क के उस सेगमेंट के लिए स्पीड लिमिट तय करता है. अगर आपको एपीआई से पाथ को स्नैप नहीं करना है, तो आपकोplaceIdपैरामीटर पास करना होगा. इसके बारे में यहां बताया गया है. यहां दिए गए उदाहरण में, तीन अक्षांश/देशांतर जोड़े के साथpathपैरामीटर दिखाया गया है:path=60.170880,24.942795|60.170879,24.942796|60.170877,24.942796.placeId— एक या उससे ज़्यादा सड़क के सेगमेंट को दिखाने वाले प्लेस आईडी. पक्का करें कि हर जगह का आईडी, सड़क के किसी हिस्से से जुड़ा हो, न कि किसी दूसरी तरह की जगह से. हर अनुरोध के साथ, ज़्यादा से ज़्यादा 100 जगह के आईडी पास किए जा सकते हैं. जवाब में, अनुरोध में शामिल हर जगह के आईडी के लिए स्पीड लिमिट शामिल होती है.एपीआई, दिए गए जगह के आईडी पर रोड-स्नैपिंग की सुविधा लागू नहीं करता. जगह के आईडी ढूंढने के लिए,
snapToRoadsयाnearestRoadsअनुरोध भेजा जा सकता है. इसके बाद, इन आईडी कोspeedLimitsअनुरोध के इनपुट के तौर पर इस्तेमाल किया जा सकता है. यहां दिए गए उदाहरण में, दो प्लेस आईडी के साथplaceIdपैरामीटर दिखाया गया है:placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU
key— आपके ऐप्लिकेशन का एपीआई पासकोड. आपके ऐप्लिकेशन को हर बार अपनी पहचान बतानी होगी, जब वह Roads API को कोई अनुरोध भेजता है. इसके लिए, हर अनुरोध में एक एपीआई पासकोड शामिल करना होगा. कुंजी पाने का तरीका जानें.
वैकल्पिक पैरामीटर
units— इससे यह तय किया जाता है कि रफ़्तार की सीमाएं किलोमीटर या मील प्रति घंटे में दिखानी हैं या नहीं. इसेKPHयाMPHपर सेट किया जा सकता है. यह डिफ़ॉल्ट रूप सेKPHपर सेट होता है.
जवाब
speedLimits के जवाब में ये एलिमेंट मौजूद हो सकते हैं:
speedLimits— सड़क के मेटाडेटा की एक कैटगरी. हर एलिमेंट में ये फ़ील्ड शामिल होते हैं:placeId— किसी जगह के लिए यूनीक आइडेंटिफ़ायर. Roads API से मिले सभी प्लेस आईडी, सड़क के सेगमेंट से मेल खाएंगे.speedLimit— सड़क के उस हिस्से के लिए गति सीमा.units— यह फ़ंक्शन,KPHयाMPHमें से कोई एक वैल्यू दिखाता है.
snappedPoints— स्नैप किए गए पॉइंट का कलेक्शन. यह कलेक्शन सिर्फ़ तब मौजूद होता है, जब अनुरोध मेंpathपैरामीटर शामिल किया गया हो. हर पॉइंट में ये फ़ील्ड शामिल होते हैं:location— इसमेंlatitudeऔरlongitudeवैल्यू शामिल होती है.originalIndex— यह एक पूर्णांक होता है. इससे मूल अनुरोध में मौजूद वैल्यू का पता चलता है. अनुरोध में मौजूद हर वैल्यू, जवाब में मौजूद स्नैप की गई वैल्यू से मैप होनी चाहिए. इन वैल्यू को0से इंडेक्स किया जाता है. इसलिए,4केoriginalIndexवाला पॉइंट,pathपैरामीटर को पास किए गए पांचवें अक्षांश/देशांतर की स्नैप की गई वैल्यू होगी.placeId— किसी जगह के लिए यूनीक आइडेंटिफ़ायर. Roads API से मिले सभी प्लेस आईडी, सड़क के सेगमेंट से मेल खाएंगे.placeIdको गति सीमा के अनुरोध में पास किया जा सकता है, ताकि सड़क के उस सेगमेंट के लिए गति सीमा तय की जा सके.
warning_message— यह एक स्ट्रिंग है, जिसमें उपयोगकर्ता को दिखने वाली चेतावनी शामिल होती है.
पाथ का इस्तेमाल करके किए गए अनुरोध का उदाहरण
इस अनुरोध में, पुर्तगाल के लिस्बन में वास्को डी गामा ब्रिज को पार करने वाले रास्ते में मौजूद अक्षांश/देशांतर के जोड़े के सबसे नज़दीकी सड़क सेगमेंट के लिए स्पीड लिमिट की जानकारी मिलती है.
अनुरोध
https://roads.googleapis.com/v1/speedLimits?path=38.75807927603043,-9.03741754643809|38.6896537,-9.1770515|41.1399289,-8.6094075&key=YOUR_API_KEYजवाब
{
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."
}ऊपर दिए गए जवाब में, पॉइंट स्पार्सिटी के लिए चेतावनी वाला मैसेज देखें. अगर आपको किसी भी पॉइंट पर, आस-पास के सड़क सेगमेंट के लिए रफ़्तार की सीमा के बारे में जानकारी चाहिए, तो आपको nearestRoads एंडपॉइंट से मिले प्लेस आईडी के साथ speedLimits को कॉल करना होगा.
जगह के आईडी का इस्तेमाल करके किए गए अनुरोध का उदाहरण
अक्षांश/देशांतर के जोड़े इस्तेमाल करने के बजाय, सड़क के सेगमेंट के प्लेस आईडी पास किए जा सकते हैं. हमारा सुझाव है कि सड़क के सेगमेंट के लिए जगह के आईडी पाने के लिए, snapToRoads या nearestRoads अनुरोधों का इस्तेमाल करें. जगह के आईडी पास करने पर, एपीआई हर जगह के आईडी से दिखाए गए सड़क के सेगमेंट के लिए, गति सीमा की जानकारी देता है. एपीआई, दिए गए जगह के आईडी पर रोड-स्नैपिंग लागू नहीं करता.
यहां दिए गए उदाहरण में, पुर्तगाल के लिस्बन में वास्को द गामा ब्रिज को पार करने वाले सड़क के कुछ हिस्सों के लिए, गति सीमा की जानकारी का अनुरोध किया गया है.
अनुरोध
https://roads.googleapis.com/v1/speedLimits?placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU&placeId=ChIJJ4vQRudkJA0RpednU70A-5M&key=YOUR_API_KEYजवाब
{
"speedLimits": [
{
placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE",
speedLimit: 105,
units: "KPH"
},
{
placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU",
speedLimit: 70,
units: "KPH"
},
{
placeId: "ChIJJ4vQRudkJA0RpednU70A-5M",
speedLimit: 55,
units: "KPH"
}
]
}इस्तेमाल से जुड़े सुझाव
हमारा सुझाव है कि आप अपनी ऐसेट की जगहों की जानकारी को हर 5 से 15 मिनट के अंतराल पर सैंपल करें. इससे, स्पीड लिमिट सेवा को मिलने वाले कॉल की संख्या कम हो जाएगी. सटीक वैल्यू इस बात पर निर्भर करती है कि ऐसेट किस स्पीड से चल रही है. अगर कोई ऐसेट एक ही जगह पर है, तो उसके लिए एक ही लोकेशन सैंपल काफ़ी है. इसके लिए, कई बार कॉल करने की ज़रूरत नहीं है.
कुल लेटेन्सी को कम करने के लिए, हमारा सुझाव है कि कुछ डेटा इकट्ठा होने के बाद, स्पीड लिमिट सेवा को कॉल करें. ऐसा हर बार मोबाइल ऐसेट की जगह की जानकारी मिलने पर एपीआई को कॉल करने के बजाय करें.
रफ़्तार की कुछ/सभी सीमाएं क्यों नहीं दिख रही हैं?
speedLimits के मौजूद न होने की सबसे आम वजह यह है कि सड़क के किसी हिस्से के बजाय, किसी ऐसी जगह के लिए गति सीमा का अनुरोध किया गया हो जो सड़क का हिस्सा नहीं है.
ऊपर दिए गए उदाहरण में, वास्को डि गामा ब्रिज का इस्तेमाल करके कॉन्सेप्ट दिखाए गए हैं;
यह ब्रिज, रियो तेजो नदी के ऊपर से गुज़रने वाली सड़क E90 को सपोर्ट करता है. इस पुल का प्लेस आईडी ChIJUzt97ZEwGQ0RM1JzQfqoDtU है. ऊपर दिए गए जवाब में, सड़क का पहला सेगमेंट E90 सड़क का हिस्सा है. इसका प्लेस आईडी ChIJX12duJAwGQ0Ra0d4Oi4jOGE है. अनुरोध के उदाहरण में, अगर सड़क की जगह के आईडी को पुल की जगह के आईडी से बदल दिया जाता है, तो जवाब में speedLimits ऐरे में सिर्फ़ दो स्पीड लिमिट होंगी. ऐसा इसलिए, क्योंकि पुल की जगह का आईडी, सड़क के किसी एक सेगमेंट को नहीं दिखाता है. इसके अलावा, अगर कोई भी प्लेस आईडी सड़क के सेगमेंट के लिए नहीं है, तो जवाब में गति सीमा की जानकारी नहीं होगी.
जगह के आईडी का इस्तेमाल करके, गति सीमा के अनुरोध करते समय पक्का करें कि हर जगह का आईडी, सड़क के किसी हिस्से से जुड़ा हो, न कि किसी दूसरी तरह की जगह से. सड़क के अलग-अलग हिस्सों के प्लेस आईडी पाने के लिए, snapToRoads या nearestRoads अनुरोधों का इस्तेमाल करना सबसे अच्छा होता है. इनमें से कोई भी अनुरोध, एक ही कॉल में कई प्लेस आईडी दिखा सकता है.