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." }
ऊपर दिए गए जवाब में, पॉइंट स्पार्सिटी के लिए चेतावनी वाले मैसेज पर ध्यान दें. अगर आप
आस-पास के सड़क के सेगमेंट के लिए, मनचाहे तरीके से गति सीमा का अनुरोध कर रहे हैं,
तो आपको speedLimits
को कॉल करना होगा. ऐसा आपको nearestRoads
एंडपॉइंट से मिले जगह के आईडी के साथ करना होगा.
जगह के आईडी के इस्तेमाल से जुड़े अनुरोध का उदाहरण
अक्षांश/देशांतर के जोड़े का इस्तेमाल करने के बजाय, सड़क के सेगमेंट के जगह के आईडी
पास किए जा सकते हैं. हमारा सुझाव है कि आप 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
अनुरोधों का इस्तेमाल करके, अलग-अलग सड़क के सेगमेंट के जगह के आईडी को सबसे सही तरीके से फिर से पाया जाता है. इनमें से दोनों में से एक ही कॉल से कई जगह के आईडी मिल सकते हैं.