किसी बिंदु के आस-पास स्टॉप खोजने के लिए, उसकी अक्षांश, देशांतर और एक रेडियस एक पास के API को भेजें। फिर प्रतिक्रिया की स्थिति, लौटाए गए तत्व और कवरेज जानकारी जांचें, उसके बाद सूची या नक्शा दिखाएं।
ROOTE करार roote-1.0.0 में, GET /v1/transit/nearby मार्ग नजदीकी परिवहन स्थान खोजता है। यह वास्तविक समय में प्रस्थान या चेतावनियाँ प्राप्त नहीं करता। स्थान खोज और उसके अगले प्रस्थान की खोज दो अलग-अलग ऑपरेशन हैं।
पैरामीटर सेट करें
क्वेरी में अक्षांश के लिए lat और देशांतर के लिए lng का उपयोग होता है। lon उपनाम भी करार में वर्णित है। radius पैरामीटर मीटर में रेडियस दिखाता है; limit मांगे गए परिणामों की सीमा तय करता है। modes फ़िल्टर परिवहन के मोड निर्दिष्ट कर सकता है।
| पैरामीटर | उदाहरण | अर्थ |
|---|---|---|
| lat | 44.8378 | खोज बिंदु का अक्षांश |
| lng | -0.5792 | खोज बिंदु का देशांतर |
| radius | 600 | मांगा गया रेडियस मीटर में |
| limit | 10 | मांगे गए परिणामों की सीमा |
| modes | bus,tram | खोजे गए मोड्स |
ये निर्देशांक बॉरडो में खोज का उदाहरण हैं; ये कोई गारंटीकृत स्टॉप नहीं दर्शाते। कृपया देखिए ROOTE OpenAPI करार वर्तमान सीमाओं, फ़ील्ड्स और शर्तों के लिए।
अपने आसपास के स्टॉप खोजें।
किसी शहर या आपकी स्थिति के आसपास सूचीबद्ध स्टॉप देखें। मोड और उपलब्ध जानकारी की जाँच करें।
सर्वर साइड पर पहली क्वेरी भेजें
यहाँ Node.js वातावरण के लिए fetch के साथ एक JavaScript उदाहरण है। यदि आपका एक्सेस टोकन का उपयोग करता है, तो वह सर्वर साइड पर्यावरण चर में रहता है। उदाहरण में ब्राउज़र में कोई रहस्य रखने की आवश्यकता नहीं है।
async function rechercherArrets(token = process.env.ROOTE_API_TOKEN) {
const url = new URL('https://api.roote.ai/v1/transit/nearby');
url.search = new URLSearchParams({
lat: '44.8378',
lng: '-0.5792',
radius: '600',
limit: '10',
modes: 'bus,tram'
}).toString();
const headers = { Accept: 'application/json' };
if (token) headers.Authorization = `Bearer ${token}`;
const response = await fetch(url, {
headers,
signal: AbortSignal.timeout(10000)
});
if (!response.ok) {
throw new Error(`Erreur HTTP ${response.status}`);
}
const data = await response.json();
if (data.contract_version !== 'roote-1.0.0') {
throw new Error('Version du contrat non reconnue');
}
if (!['success', 'empty', 'partial'].includes(data.status)) {
throw new Error('Recherche indisponible');
}
if (!Array.isArray(data.stations)) {
throw new Error('Réponse sans collection stations valide');
}
return {
status: data.status,
stations: data.stations,
lines: data.lines,
operators: data.operators,
coverage: data.coverage,
warnings: data.warnings,
attributions: data.attributions,
meta: data.meta
};
}
देखे गए करार में निःशुल्क या टोकन आधारित पहुँच की अनुमति है, लागू नीतियों के अनुसार। अपने अधिकार और पहुँच सीमाएँ जांचें। सही HTTP प्रतिक्रिया मिलने के बाद भी उसकी सामग्री की पुष्टि करें; प्रोडक्शन में ऑब्जेक्ट स्कीमा के खिलाफ सत्यापन भी करें।
इकाइयाँ और उनके संबंध पढ़ें
stations संग्रह लौटाए गए स्थानों को रखता है। प्रत्येक के id, name, entity_kind, location और distance_meters देखें। line_ids और operator_ids संदर्भ लकीरें और ऑपरेटर संग्रह से कनेक्ट करते हैं यदि वे उपलब्ध हों।
भूगोलिक दूरी को वैसा ही दिखाएं। बिना मार्ग गणना के इसे चलने के समय में न बदलें। गाइड निकटतम स्टॉप खोजें बताता है कि पहुँच कैसे वास्तविक यात्रा को प्रभावित कर सकती है।
अज्ञात जानकारी को स्पष्ट रूप से संभालें। करार में accessibility.wheelchair मान unknown हो सकता है: यह yes या no के बराबर नहीं है। घोषित प्रस्थान क्षमता प्रस्थान सूची नहीं है।
सूची या नक्शा दिखाएं
इंटरफ़ेस एलिमेंट की स्थिरता के लिए पहचान का उपयोग करें, नाम को उनके लेबल के लिए और स्थिति के लिए location। संदर्भ के माध्यम से लाइनों को जोड़ें, नाम के द्वारा नहीं।
यदि आप डाटा से रंग या लेबल दिखाते हैं, उन्हें बाहरी डाटा मानकर सत्यापित करें। नामों के लिए HTML के बजाय साधारण पाठ का उपयोग करें।
स्रोत के अभिप्राय को बनाए रखें और करार में आवश्यक बताए गए अभिप्राय दिखाएं।
खाली परिणाम, आंशिक जवाब और त्रुटि संभालना
empty परिणाम का अर्थ है ज्ञात क्षेत्र के भीतर कोई परिणाम नहीं, यह परिवहन की वास्तविक अनुपस्थिति साबित नहीं करता। partial प्रतिक्रिया उपयोगी स्थानों के साथ सीमाएँ दर्शा सकती है: परिणाम और संबंधित चेतावनी दिखाएं।
coverage, warnings और meta में लागू सीमाएँ पढ़ें। अधूरी सूची व्यापक कवरेज साबित नहीं है। नेटवर्क या HTTP त्रुटि के मामले में, "कोई स्टॉप नहीं" दिखाने के बजाय अनुपलब्धता दिखाएं।
कोड 429 के लिए पुन: प्रयास निर्देश और सेवा हेडर देखें। पुनः प्रयास चक्र से बचें।
स्टेशनों, क्षेत्रों और प्लेटफार्मों को अलग करें
entity_kind फ़ील्ड विभिन्न स्तरों के स्थान बताता है। पास के दो परिणाम अलग-अलग प्लेटफार्म हो सकते हैं; समान नाम अलग स्रोतों के हो सकते हैं।
केवल निकटता पर स्थानों को स्वचालित रूप से मर्ज न करें। सेवा द्वारा दस्तावेजित संबंधों और पहचान का उपयोग करें। हमारा गाइड GTFS, GTFS-RT और GBFS डेटा संदर्भ समझाता है।
प्रोडक्शन में समाकलन तैयार करें
स्थान या फ़िल्टर उपयोगी बदलाव पर खोज सक्रिय करें। समान कॉल समूहित करें, टाइमआउट तय करें और सेवा की स्थिति अनुसार कैश सेट करें।
स्थान सूची और वास्तविक समय उपलब्धता की ताजगी की जरूरत अलग होती है। पूर्ण, खाली, आंशिक और त्रुटिपूर्ण प्रतिक्रियाओं के साथ धारणा जांचें, फिर खोज उपयोगकर्ताओं तक पहुंचाएं।
शहरी सेवाओं के लिए खोज बढ़ाना
स्टॉप और शहरी सेवाएं अलग-अलग मार्गों का उपयोग करती हैं। उसी बिंदु के आसपास शौचालय खोजने के लिए, GET /v1/services/nearby मार्ग lat और lon लेता है, साथ ही types=toilets। इस मार्ग पर modes=toilets न भेजें: यह शब्दावली मानचित्र URL से संबंधित है, सेवाओं के फ़िल्टर से नहीं।
निम्नलिखित जावास्क्रिप्ट उदाहरण 600 मीटर की त्रिज्या के लिए एक सेवाएं URL बनाता है। यह अनुरोध को सक्रिय नहीं करता; ऊपर वर्णित HTTP और अनुबंध नियंत्रणों का पुन: उपयोग करें। अपेक्षित संग्रह stations के बजाय services होता है। service_type, location, distance_meters और वास्तव में मौजूद गुणों को बनाए रखें।
REST अनुबंध में विशेष रूप से toilets, drinking_water, fountain, wifi, parking, charging, aed और locker शामिल हैं। MCP द्वारा प्रदर्शित प्रकार भिन्न हो सकते हैं। स्वीकार किए गए मानकों, उनकी सीमाओं और आपके एक्सेस सीमाओं के लिए उपयोग किए गए इंटरफ़ेस स्कीम को देखें।
किसी सेवा के गुण उस समय सेवा खुली रहने की गारंटी नहीं देते जब खोज की जाती है। अज्ञात पहुँच का मतलब सेवा अनुपलब्ध नहीं है; त्रुटि से प्राप्त खाली सूची शौचालयों की गैर-मौजूदगी साबित नहीं करती। प्रत्येक परिवार के डेटा को नाम और स्थान तक सीमित करने के बजाय उसे साफ़-सुथरा रखें।
एक संयुक्त मानचित्र के लिए, परिणामों को उनके परिवार और पहचानकर्ताओं के साथ संयोजित करें। ट्रांज़िट द्वारा लौटाए गए स्टॉप को हटाए बिना सेवाओं में त्रुटि दिखाएं। खोज उसी बिंदु पर केंद्रित रहती है, परंतु स्थिति और कवरेज विभिन्न हो सकते हैं।
const url = new URL('https://api.roote.ai/v1/services/nearby');
url.search = new URLSearchParams({
lat: '44.8416106', lon: '-0.5810938',
radius: '600', limit: '10', types: 'toilets'
}).toString();
console.log(url.toString());
खाली या त्रुटिपूर्ण खोज का निदान करना
किसी साइट में सीधे फ़िल्टर वाली मानचित्र शामिल करना
इन खोजों के चारों ओर एक सहायक बनाना
सामान्य प्रश्न
Nearby अगले प्रस्थान देता है?
यहाँ बताए करार में नहीं। यह मार्ग परिवहन के स्थान खोजता है; प्रस्थान अलग क्षमता मांगता है।
क्या त्रुटि के बाद खाली सूची दिखा सकते हैं?
अनुपलब्धता दिखाएं। त्रुटि स्टॉप की अनुपस्थिति साबित नहीं करती।
क्या API टोकन ब्राउज़र में रखा जा सकता है?
एक रहस्य सर्वर साइड रहता है। अपनी एप्लिकेशन और खाते के अनुसार पहुँच मॉडल का उपयोग करें।