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
से इंडेक्स किया जाता है. इसलिए,originalIndex
के4
वाले पॉइंट को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
अनुरोधों का इस्तेमाल करके सबसे अच्छी तरह से वापस पाए जा सकते हैं. इनमें से किसी भी अनुरोध से, एक ही कॉल से कई प्लेस आईडी मिल सकते हैं.