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=ChIJs5ydyTiuEmsR0fRSlU0C7k0&placeId=ChIJW__r4ERXzpQRgkeRL6P0m3Y
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"
}
]
}इस्तेमाल से जुड़े सुझाव
हमारा सुझाव है कि आप अपनी ऐसेट की जगहों के सैंपल, पांच से 15 मिनट के अंतराल पर लें. इससे स्पीड लिमिट सेवा को किए जाने वाले कॉल की संख्या कम हो जाएगी. हालांकि, यह अंतराल इस बात पर निर्भर करता है कि ऐसेट किस स्पीड से चल रही है. अगर कोई ऐसेट एक ही जगह पर है, तो उसकी एक लोकेशन का सैंपल काफ़ी है. इसके लिए, कई बार कॉल करने की ज़रूरत नहीं है.
कुल लेटेन्सी को कम करने के लिए, हमारा सुझाव है कि कुछ डेटा इकट्ठा होने के बाद ही स्पीड लिमिट सेवा को कॉल करें. हर बार मोबाइल ऐसेट की जगह की जानकारी मिलने पर, एपीआई को कॉल न करें.
रफ़्तार की कुछ/सभी सीमाएं क्यों नहीं दिख रही हैं?
speedLimits के मौजूद न होने की सबसे आम वजह यह है कि सड़क के किसी हिस्से के बजाय, किसी ऐसी जगह की गति सीमा का अनुरोध किया गया हो जो सड़क का हिस्सा नहीं है.
ऊपर दिए गए उदाहरण में, वास्को डि गामा ब्रिज का इस्तेमाल करके कॉन्सेप्ट दिखाए गए हैं. यह ब्रिज, रियो तेजो नदी के ऊपर से गुज़रने वाली सड़क E90 को सपोर्ट करता है. इस पुल का प्लेस आईडी ChIJUzt97ZEwGQ0RM1JzQfqoDtU है. ऊपर दिए गए जवाब में पहला सड़क सेगमेंट, E90 सड़क का हिस्सा है. इसका प्लेस आईडी, ChIJX12duJAwGQ0Ra0d4Oi4jOGE है. अनुरोध के उदाहरण में, अगर सड़क की जगह के आईडी को पुल की जगह के आईडी से बदल दिया जाता है, तो जवाब में speedLimits कलेक्शन में सिर्फ़ दो स्पीड लिमिट होंगी. ऐसा इसलिए, क्योंकि पुल की जगह का आईडी, सड़क के किसी एक सेगमेंट को नहीं दिखाता है. इसके अलावा, अगर कोई भी प्लेस आईडी सड़क के सेगमेंट के लिए नहीं है, तो जवाब में गति सीमाएं शामिल नहीं होंगी.
जगह के आईडी का इस्तेमाल करके, गति सीमा के अनुरोध करते समय पक्का करें कि हर जगह का आईडी, सड़क के किसी सेगमेंट का हो, न कि किसी दूसरी तरह की जगह का. सड़क के अलग-अलग सेगमेंट के प्लेस आईडी पाने के लिए, snapToRoads या nearestRoads अनुरोधों का इस्तेमाल करना सबसे अच्छा होता है. इनमें से कोई भी अनुरोध, एक कॉल में कई प्लेस आईडी दिखा सकता है.
अगर सड़क के किसी सेगमेंट पर, कारों और ट्रकों के लिए अलग-अलग गति सीमाएं पोस्ट की जाती हैं, तो क्या होगा?
Roads API फ़ंक्शन, सिर्फ़ कारों के लिए पोस्ट की गई ज़्यादा से ज़्यादा स्पीड लिमिट दिखाता है.