Soundscape के पीछे की तकनीक

इस पृष्ठ का उद्देश्य इस बात की एक सामान्य समझ देना है कि Soundscape ऐप पर्दे के पीछे कैसे काम करता है। ऐप का उपयोग करने के लिए आपको इसे पढ़ने की ज़रूरत नहीं है, लेकिन इसे लिखे जाने के कुछ कारण हैं:

  1. ऐप में रुचि रखने वाले किसी भी नए व्यक्ति को यह समझने में मदद करना कि इसकी सीमाएँ कहाँ हैं
  2. उपयोगकर्ताओं को यह अंदाज़ा देना कि नई सुविधाओं के साथ और क्या संभव हो सकता है
  3. डेवलपर्स को ऐप के कार्य का एक अवलोकन देना

दो प्रौद्योगिकियाँ हैं जो इस ऐप को संभव बनाती हैं, GPS और OpenStreetMap डेटा। GPS हमें एक अच्छा अंदाज़ा देता है कि फ़ोन कहाँ है, और कहाँ रहा है। फिर OpenStreetMap डेटा का उपयोग यह जानने के लिए किया जा सकता है कि आसपास क्या है और हम इसका उपयोग उसे उपयोगकर्ता को बताने के लिए कर सकते हैं।

ऑडियो बीकन

प्रौद्योगिकी की दृष्टि से अधिकांश मामलों में इन्हें लागू करना सबसे सरल चीज़ें हैं। यह मानते हुए कि हमारे पास फ़ोन का स्थान और फ़ोन की एक दिशा है, हम फिर बीकन के ऑडियो को इस तरह बदल सकते हैं कि वह उस दिशा से आता हुआ सुनाई दे। हम ऑडियो स्थिति-निर्धारण करने के लिए Steam Audio की एक लाइब्रेरी का उपयोग करते हैं, जो सर्वोत्तम संभव श्रव्य स्थिति-निर्धारण देने के लिए हेड रिलेटेड ट्रांसफ़र फ़ंक्शन का उपयोग करती है। हम केवल एक और काम करते हैं वह यह कि बीकन ऑडियो को बदलते हैं ताकि उपयोगकर्ता की दिशा और बीकन के स्थान के बीच के कोण के आधार पर एक अलग ध्वनि बजे। चुने गए बीकन (Tactile, Flare, Ping आदि) के आधार पर कोण भिन्न होते हैं और कुछ में दूसरों की तुलना में अधिक संख्या में ध्वनियाँ होती हैं। और सरलतम स्तर पर ऑडियो बीकन यही हैं।

केवल अतिरिक्त जटिलता फ़ोन के स्थान और उस दिशा की धारणा है जिसमें उपयोगकर्ता इंगित कर रहा है। आइए इन्हें बारी-बारी से देखें।

स्थान

GPS द्वारा लौटाए गए स्थान में काफ़ी बड़ी त्रुटि हो सकती है, और यह इस पर निर्भर करता है कि फ़ोन के GPS को आकाश का कितना हिस्सा दिखाई देता है, और रास्ते में फ़ोन तक आते समय कितने पेड़ और ऊँची इमारतें GPS सिग्नल को परावर्तित कर रही हैं।

स्थान को फ़िल्टर करने के लिए हमने जो दृष्टिकोण अपनाया है वह उसका उपयोग करना है जिसे मानचित्र मिलान (map matching) के रूप में जाना जाता है। यह मानता है कि उपयोगकर्ता सबसे अधिक संभवतः किसी मानचित्रित पथ या सड़क के साथ यात्रा कर रहा है - हम सभी सड़कों, ट्रैक और पथों को शामिल करने के लिए ‘Way’ शब्द का उपयोग करते हैं। मानचित्र मिलान यह देखता है कि उपयोगकर्ता कहाँ रहा है और गति की दिशा के साथ-साथ स्थानीय मानचित्रण डेटा का उपयोग करते हुए यह किसी Way पर सबसे संभावित स्थान चुनता है। यह दृष्टिकोण न केवल GPS से होने वाली त्रुटियों को ध्यान में रखता है, बल्कि मानचित्र डेटा में होने वाली त्रुटियों को भी। सभी Way सटीक रूप से मानचित्रित नहीं होते और इसलिए उनमें भी त्रुटियाँ होती हैं। यह निर्धारित करने के लिए कि उपयोगकर्ता किस सबसे संभावित Way पर है, एल्गोरिथ्म इन पर विचार करता है:

  • कोई Way GPS स्थान और पिछले GPS स्थानों के कितना निकट है
  • यात्रा की दिशा - क्या वे Way के समान दिशा में जा रहे हैं
  • क्या Way के नेटवर्क के माध्यम से अंतिम मानचित्र-मिलित स्थान से नए स्थान तक पहुँचना संभव है। यह उन Way के बीच स्विच होने से बचने के लिए आवश्यक है जो वास्तव में जुड़े हुए नहीं हैं उदा. एक पुल द्वारा दूसरे के ऊपर से गुज़रता है, या किसी सुरंग द्वारा उसके नीचे से। मानचित्र मिलान यह तय कर सकता है कि आसपास कोई Way नहीं है, या उसे विश्वास नहीं है कि उपयोगकर्ता किस पर है, और इस स्थिति में यह बस अगले GPS स्थान की प्रतीक्षा करता है और तब तक फिर से प्रयास करता है जब तक वह आश्वस्त न हो जाए।

दिशा

सॉफ़्टवेयर में हम कई दिशाओं को ट्रैक करते हैं:

  1. वह दिशा जिसमें फ़ोन इंगित कर रहा है। हम इसका उपयोग तब करते हैं जब फ़ोन अनलॉक होता है और ऐप उपयोग में होता है, लेकिन तब भी जब फ़ोन लॉक होता है, बशर्ते उसे स्क्रीन आकाश की ओर इंगित करते हुए सपाट पकड़ा गया हो। अपने फ़ोन को बैग में रखते समय इस बात को ध्यान में रखना उपयोगी है। यदि इसे किसी सीधे रखे बैग की तली में सपाट रखा जाता है, तो आपका बैग जिस अनियमित दिशा में इंगित कर रहा है उसका उपयोग ऐप द्वारा किया जाएगा।
  2. वह दिशा जिसमें फ़ोन यात्रा कर रहा है।
  3. हेड ट्रैकिंग वाले हेडफ़ोन से प्राप्त दिशा। हम वर्तमान में इसका उपयोग नहीं करते, हालाँकि iOS ऐप इसका समर्थन करता था। इसे भविष्य में जोड़ने के लिए हमारे पास प्रौद्योगिकी मौजूद है।

जब फ़ोन लॉक होता है और बैग में होता है, तो ऐप यात्रा की दिशा का उपयोग करेगा। हालाँकि, यदि उपयोगकर्ता नहीं चल रहा है तो कोई दिशा उपलब्ध नहीं होती। जब ऐसा होता है तो ऑडियो बीकन धीमे हो जाते हैं ताकि यह संकेत मिले कि बीकन की वर्तमान दिशा जानना संभव नहीं है - उपयोगकर्ता बिना स्थान बदले घूम सकता है।

ऐप में दिशा के कुछ उपयोगों के लिए, दिशा को मानचित्र-मिलित Way की दिशा से ‘स्नैप’ किया जाता है, इसलिए यदि उपयोगकर्ता मोटे तौर पर Way की दिशा में चल रहा है तो Way की वास्तविक दिशा को सही माना जाता है और उन गणनाओं में उपयोग किया जाता है।

निष्कर्ष

हालाँकि देखने में ऑडियो बीकन सीधे-सरल लगते हैं, स्थान और दिशा की त्रुटियों को हटाने के प्रयास में मानचित्र मिलान का उपयोग काफ़ी मात्रा में जटिलता ले आता है।

मानचित्र डेटा

ऐप द्वारा उपयोग किया जाने वाला लगभग सारा मानचित्र डेटा OpenStreetMap परियोजना से आता है। हम एक सर्वर चलाते हैं जिसमें कई ज़ूम स्तरों पर पूरी दुनिया का एक मानचित्र होता है। प्रत्येक ज़ूम स्तर को टाइलों में विभाजित किया जाता है। ज़ूम स्तर 0 में 1 टाइल होती है, स्तर 1 में 4 टाइलें, स्तर 2 में 16 टाइलें और इसी तरह स्तर 14 तक जिसमें ग्रह को कवर करने के लिए लगभग 268 मिलियन टाइलें होती हैं। प्रत्येक टाइल में कई परतें होती हैं और प्रत्येक परत में बिंदु, रेखाएँ और बहुभुज होते हैं जिन्हें एक ग्राफ़िकल मानचित्र बनाने के लिए खींचा जा सकता है। वह ग्राफ़िकल मानचित्र वही है जो ऐप GUI में उपयोगकर्ता को दिखाया जाता है। प्रत्येक बिंदु, रेखा और बहुभुज में मेटाडेटा होता है जो वर्णन करता है कि यह क्या है। यह अधिकतर सीधे OpenStreetMap डेटा से होता है इसलिए एक रेखा एक footway हो सकती है जो एक sidewalk है या एक road जो minor है

डेटा को एक ‘शैली’ (style) के माध्यम से ग्राफ़िकल मानचित्र में बदला जाता है जिसमें इस बारे में नियम होते हैं कि प्रत्येक परत में विभिन्न बिंदुओं, रेखाओं और बहुभुजों को कैसे खींचा जाए उदा. किसी पथ को कैसे खींचें, किसी जंगल को कैसे खींचें, किसी बस स्टॉप को कैसे खींचें। नियम ज़ूम स्तर के अनुसार भिन्न हो सकते हैं, यही कारण है कि जैसे-जैसे आप ज़ूम इन करते हैं, अधिक से अधिक बिंदु और रेखाएँ दिखाई देने लगती हैं जो ज़ूम आउट होने पर दिखाई नहीं देतीं उदा. बस स्टॉप और पथ।

शैली को बदलकर हम बदल सकते हैं कि GUI मानचित्र कैसा दिखता है, और यहीं से वह ‘सुलभ मानचित्र’ (accessible map) आता है जिसे हम आज़मा रहे हैं। इसका लक्ष्य अधिक कंट्रास्ट और अधिक बोल्ड रेखाएँ और टेक्स्ट रखना है। शैली ऐप में निर्मित होती है, इसलिए मानचित्र कैसा दिखता है यह बदलने के लिए हमें सर्वर पर मानचित्र बदलने की ज़रूरत नहीं है।

लेकिन हम ऑडियो के लिए मानचित्र डेटा का उपयोग कैसे करते हैं?

ऑडियो के लिए मानचित्र डेटा का उपयोग

हम वर्तमान में ऑडियो उपयोगकर्ता इंटरफ़ेस उत्पन्न करने के लिए मानचित्रण डेटा की अपेक्षाकृत कम मात्रा का उपयोग करते हैं। लगभग सारा ऑडियो UI केवल अधिकतम ज़ूम स्तर की टाइलों का उपयोग करता है। ऐप उपयोगकर्ता जहाँ है उसके आसपास टाइलों का 2 गुणा 2 का ग्रिड जोड़ता है और फिर केवल कुछ परतों को देखता है:

  • transportation - सड़कों, पथों, रेलवे और ट्राम मार्गों सहित सभी प्रकार के Way के लिए।
  • poi - रुचि के स्थान उदा. दुकानें, स्पोर्ट्स सेंटर, बेंच, पोस्ट बॉक्स, बस स्टॉप आदि।
  • building - यह उन poi के लिए है जो केवल एक बिंदु से अधिक के रूप में मानचित्रित होते हैं उदा. बड़े सुपरमार्केट या टाउन हॉल।

यह टाइल सीमाओं के पार रेखाओं और बहुभुजों को जोड़ता है और सभी Way को जुड़े हुए Way खंडों और चौराहों में बदल देता है। यह महत्वपूर्ण है क्योंकि यह हमें किसी Way के साथ खोज करने की अनुमति देता है ताकि पता चल सके कि हम कहाँ तक पहुँच सकते हैं।

सभी पार्स किए गए डेटा को एक आसानी से खोजे जाने वाले प्रारूप में भी रखा जाता है ताकि ऐप आसानी से यह ढूँढ सके कि मानचित्र की कौन-सी विशेषताएँ आसपास हैं। इस बिंदु पर डेटा को श्रेणियों में वर्गीकृत किया जाता है। वर्तमान श्रेणियाँ हैं:

  • सड़कें
  • सड़कें और पथ (सभी Way)
  • चौराहे - वे बिंदु जहाँ Way प्रतिच्छेद करते हैं
  • प्रवेश द्वार - ये किसी इमारत पर वे बिंदु हैं जिन्हें प्रवेश द्वार के रूप में चिह्नित किया गया है।
  • क्रॉसिंग - सड़क क्रॉसिंग
  • POI - सभी रुचि के स्थान
  • परिवहन स्टॉप - बस स्टॉप, रेलवे स्टेशन, ट्राम स्टॉप इत्यादि।
  • POI की उपश्रेणियाँ:
    • सूचना
    • वस्तु
    • स्थान
    • लैंडमार्क
    • गतिशीलता
    • सुरक्षा
  • बस्तियाँ और उपश्रेणियाँ (अगला अनुभाग देखें)
    • शहर
    • कस्बे
    • गाँव
    • छोटे गाँव

इसके मौजूद होने पर, किसी भी स्थान के लिए ऐप फिर आसानी से ढूँढ सकता है

  • “50 मीटर के भीतर सभी परिवहन स्टॉप” या
  • “मेरे आगे का निकटतम चौराहा” या
  • “निकटतम छोटा गाँव, गाँव, कस्बा या शहर”

इसके मौजूद होने पर, ऑडियो कॉलआउट बनाना केवल वर्तमान स्थान और दिशा के आधार पर डेटा को क्वेरी करने का प्रश्न है। जैसे-जैसे उपयोगकर्ता एक टाइल ग्रिड के पार चलता है, यह इसे अपडेट करता है ताकि यह वर्तमान स्थान के चारों ओर केंद्रित रहे।

अधिक डेटा

हमारे बहुत स्थानीय मानचित्र डेटा ग्रिड के साथ एक समस्या यह है कि इसका अर्थ है कि हम किसी भी दिशा में अधिकतम लगभग 1 किमी तक ही ‘देख’ सकते हैं। यह तब ठीक है जब हम वर्णन कर रहे हों कि हमारे सामने क्या है, लेकिन कभी-कभी हम अधिक संदर्भ देना चाहते हैं। इसका मुख्य उदाहरण तब है जब ऐप का उपयोग किया जाता है और उपयोगकर्ता चल नहीं रहा होता।

जब ऐप पता लगाता है कि उपयोगकर्ता 5 मीटर प्रति सेकंड से अधिक की गति से यात्रा कर रहा है, तो यह बदल देता है कि यह दुनिया का वर्णन कैसे करता है। हर चौराहे और POI को कॉल आउट करने के बजाय यह कम बार और केवल पास की सड़कों को कॉल आउट करता है। इसके साथ समस्या यह है कि किसी सड़क का नाम जानना बहुत उपयोगी नहीं है यदि आप नहीं जानते कि वह किस कस्बे में है।

इसे संबोधित करने का प्रयास करने के लिए, अब हम मानचित्र डेटा को निचले ज़ूम स्तर पर भी पार्स करते हैं और place परत से डेटा निकालते हैं। इसमें कस्बों, शहरों, पड़ोसों, गाँवों इत्यादि के नाम होते हैं। चीज़ों को मानचित्रित करने के साथ एक मुद्दा यह है कि इन स्थानों के बीच हमेशा एक स्पष्ट सीमा नहीं होती। OpenStreetMap के डेटाबेस में कभी-कभी शहर की सीमाएँ होती हैं, लेकिन तब भी जब ऐसा होता है, हमारे टाइल किए गए मानचित्र तक पहुँचते-पहुँचते वह जानकारी अक्सर खो जाती है। हमारे पास जो है वह वह स्थान है जहाँ मानचित्र पर स्थान के नाम खींचे जाते हैं। इन्हें वर्गीकृत किया जाता है और फिर ऐप उपयोगकर्ता के निकटतम छोटे गाँव, गाँव, कस्बे या शहर को ढूँढेगा और उसकी रिपोर्ट करेगा।

कई शहरों के लिए वास्तविक शहर का नाम कभी कॉल आउट नहीं किया जाएगा, क्योंकि अधिकांश शहर पड़ोसों जैसे छोटे विभागों में विभाजित होते हैं, लेकिन वे अतिरिक्त संदर्भ देते हैं और बहुत उपयोगी होते हैं। बस याद रखें कि क्योंकि ऐप रिपोर्ट करता है कि आप किसी विशेष पड़ोस की किसी सड़क के पास हैं, इसका मतलब केवल यह है कि उस पड़ोस का लेबल निकटतम बिंदु है और यह गलत हो सकता है या यहाँ तक कि किसी नदी के पार भी हो सकता है।

अधिक संदर्भ

वर्णनों में जितना अधिक संदर्भ जोड़ा जा सके उतना बेहतर है, बशर्ते वह संक्षिप्त और पूर्वानुमेय बना रहे। चौराहों का वर्णन करने में हमने जो एक मुद्दा देखा वह यह था कि अक्सर इसमें ‘बिना नाम वाले’ Way शामिल होते थे। ये वे Way हैं जिनका कोई नाम नहीं होता। मानचित्रण डेटा में ये केवल एक ट्रैक, एक पथ या एक सर्विस रोड हो सकते हैं, लेकिन अधिक संदर्भ के बिना ये टेक्स्ट वर्णनों में बहुत उपयोगी नहीं हैं। सौभाग्य से, हम बेहतर कर सकते हैं, इसलिए ऐप जो करता है वह यह कि जब भी वह किसी बिना नाम वाले Way की घोषणा करने वाला होता है तो वह देखता है कि क्या वह उसके लिए कुछ अधिक संदर्भ का पता लगा सकता है।

  • क्या यह एक sidewalk है? OpenStreetMap के बहुत से क्षेत्रों में अब sidewalk सड़कों से अलग से मानचित्रित होते हैं। इन्हें आमतौर पर sidewalk के रूप में टैग किया जाता है लेकिन वे आम तौर पर यह नहीं बताते कि वह सड़क कौन-सी है जिसके लिए वे sidewalk हैं।

    जब ऐप किसी बिना नाम वाले sidewalk के सामने आता है, तो यह एक ऐसी सड़क खोजता है जिसके बारे में उसे लगता है कि वह उसके बगल से गुज़र रही है और उसका उपयोग sidewalk का नाम रखने के लिए करता है। यह हमारे कॉलआउट के लिए बहुत महत्वपूर्ण साबित होता है। हर sidewalk चौराहे की घोषणा करने के बजाय, जैसे-जैसे हम किसी sidewalk के साथ चलते हैं, कॉलआउट इस तरह किए जाते हैं मानो हम संबद्ध सड़क के साथ चल रहे हों। “पथ पर पश्चिम की ओर यात्रा” के बजाय हमारे पास “Moor Road पर पश्चिम की ओर यात्रा” होता है। उपयोगकर्ता मानचित्रित sidewalk पर है, लेकिन वर्णन अधिक समझ में आता है।

  • क्या यह किसी नामित Way पर समाप्त होता है? अक्सर ऐसे पैदल यात्री पथ होते हैं जो दो सड़कों को आपस में जोड़ते हैं। पथ के दोनों सिरों को देखकर हम आसानी से वह संदर्भ जोड़ सकते हैं ताकि एक दिशा में यह “Moor Road की ओर पथ” हो सकता है और दूसरे सिरे से आते समय यह “Roselea Drive की ओर पथ” हो सकता है। यह केवल वहीं किया जाता है जहाँ पथ विभाजित नहीं होता, यदि यह दो बिना नाम वाले पथों में विभाजित हो जाता है तो हम यह संदर्भ जोड़ने का प्रयास नहीं करते।

  • क्या यह किसी मार्कर के पास समाप्त होता है? यदि कोई बिना नाम वाला Way किसी मार्कर के पास शुरू या समाप्त होता है, तो उसका उपयोग उसका वर्णन करने के लिए किया जाता है उदा. “बड़े पेड़ के जंक्शन की ओर पथ”। उपयोगकर्ता जहाँ चाहे मार्कर जोड़ सकता है, और पथ नेटवर्क के साथ मार्कर जोड़कर वे पूरे मार्ग में संदर्भ जोड़ सकते हैं।

  • क्या यह किसी POI में प्रवेश या उससे बाहर निकलता है? यदि कोई बिना नाम वाला Way किसी POI के बाहर शुरू होता है और उसके अंदर समाप्त होता है (या इसके विपरीत) तो हम वह संदर्भ जोड़ सकते हैं उदा. “Lennox Park की ओर ट्रैक”।

  • क्या यह किसी प्रवेश द्वार के पास समाप्त होता है? यदि कोई बिना नाम वाला Way किसी प्रवेश द्वार के अधिक पास शुरू या समाप्त होता है तो हम वह संदर्भ जोड़ सकते हैं उदा. “Best Buy की ओर सर्विस रोड”।

  • क्या यह किसी लैंडमार्क या स्थान के पास समाप्त होता है? यदि कोई बिना नाम वाला Way किसी लैंडमार्क के अधिक पास शुरू या समाप्त होता है तो हम वह संदर्भ भी जोड़ सकते हैं उदा. “St. Giles Cathedral की ओर सर्विस रोड”।

  • क्या यह एक मृत-छोर (dead-end) है? ऐप किसी भी बिना नाम वाले Way को मृत-छोर के रूप में चिह्नित करता है जो कहीं नहीं ले जाता।

  • क्या यह किसी सीढ़ी से गुज़रता है? यदि बिना नाम वाला Way किसी पुल के ऊपर से, किसी सुरंग के माध्यम से या सीढ़ियों के ऊपर/नीचे से गुज़रता है तो इसे नोट किया जाता है और संदर्भ में जोड़ा जाता है। यह गंतव्य टैगिंग से अलग है इसलिए “पुल के ऊपर से Lennox Park की ओर पथ” जैसा संदर्भ संभव है।

ये संदर्भ क्रम में जोड़े जाते हैं और इसलिए एक दिशा में “सीढ़ियों के माध्यम से Park Lane की ओर पथ” और दूसरी दिशा में “सीढ़ियों के माध्यम से Lennox Park की ओर पथ” होना संभव है। पार्क छोड़ते समय नामित सड़क को प्राथमिकता मिलती है, लेकिन पार्क में प्रवेश करते समय पार्क का उपयोग किया जाता है।

भविष्य का संदर्भ

ऐसे कई अतिरिक्त संदर्भ हैं जिन्हें हम भविष्य में जोड़ने की आशा करते हैं, जिनमें शामिल हैं:

  • रैखिक जल विशेषताओं का अनुसरण करने वाले Way के लिए संदर्भ उदा. “River Dee के बगल का पथ”
  • जल निकायों के किनारे का अनुसरण करने वाले Way के लिए संदर्भ “Milngavie जलाशय के बगल का पथ”
  • रेलवे का अनुसरण करने वाले Way के लिए संदर्भ उदा. “रेलवे के बगल का पथ”। इसमें रेलवे लाइन का नाम भी शामिल हो सकता है
  • पुलों और सुरंगों में अतिरिक्त सामग्री जोड़ें, वे किसके ऊपर या नीचे हैं उदा. “रेलवे के ऊपर पुल के माध्यम से Moor Road की ओर पथ”

ऑडियो कॉलआउट

अब जब हमारे पास मानचित्र डेटा एक ऐसे प्रारूप में है जिसका हम आसानी से उपयोग कर सकते हैं, कॉलआउट उत्पन्न करना वास्तव में काफ़ी सीधा-सरल है।

चलते समय कॉलआउट

चलते समय, जो ऑडियो कॉलआउट हो सकते हैं वे हैं (प्राथमिकता के क्रम में):

  1. वर्णन करें कि वर्तमान गंतव्य कितनी दूर है
  2. आगामी चौराहे का वर्णन करें
  3. 5 निकटतम रुचि के स्थानों का वर्णन करें

सभी कॉलआउट दर-सीमित हैं ताकि वे बहुत बार न दोहराएँ। यदि उपयोगकर्ता चलना बंद कर देता है तो कॉलआउट रुक जाएँगे, और चलते समय भी कोई कॉलआउट हर नए GPS स्थान पर नहीं दोहराएगा। iOS ऐप के अनुसार आवृत्ति है:

  • वर्तमान गंतव्य के लिए हर 60 सेकंड
  • आगामी चौराहे के लिए हर 30 सेकंड
  • किसी रुचि के स्थान के लिए हर 60 सेकंड

कॉलआउट को सेटिंग्स मेनू के माध्यम से फ़िल्टर किया जा सकता है, और इस व्यवहार को विस्तृत करने की निश्चित रूप से गुंजाइश है।

तेज़ यात्रा करते समय कॉलआउट

5 मीटर प्रति सेकंड से अधिक गति से यात्रा करते समय, वर्तमान गंतव्य के लिए कॉलआउट अभी भी होता है, लेकिन चौराहे और रुचि के स्थानों के कॉलआउट को एक ऐसे कॉलआउट से बदल दिया जाता है जो मोटे तौर पर वर्णन करता है कि उपयोगकर्ता कहाँ है। यह एक पास का परिवहन स्टॉप, एक रुचि का स्थान जो हमें समाहित करता है उदा. किसी बड़े पार्क के अंदर, या एक पास की सड़क और बस्ती देता है। ये पहले वर्णित डेटा का उपयोग करते हैं, और भविष्य में इसके अनुकूलन की अनुमति देने के लिए स्पष्ट गुंजाइश है।

मार्कर और मार्ग

अधिकांश भाग के लिए मार्कर और मार्ग केवल एक उपयोगकर्ता इंटरफ़ेस सुविधा हैं जो न तो GPS पर और न ही वास्तव में मानचित्र डेटा पर निर्भर करती है। मार्कर वे नामित स्थान हैं जिन्हें उपयोगकर्ता संग्रहीत करना चाहता है, और मार्ग उन मार्करों की एक क्रमबद्ध सूची हैं। दोनों बनाने का उपयोगकर्ता इंटरफ़ेस सीधे iOS संस्करण से लिया गया है।

मार्ग प्लेबैक

मार्ग प्लेबैक वह जगह है जहाँ मार्ग जीवंत होते हैं। जब किसी मार्ग का प्लेबैक होता है तो मार्ग के पहले मार्कर पर एक ऑडियो बीकन बनाया जाता है। एक बार जब उपयोगकर्ता उस मार्कर के पास पहुँच जाता है, तो मार्ग स्वचालित रूप से ऑडियो बीकन को मार्ग के अगले मार्कर पर ले जाता है। यदि कोई और मार्कर नहीं हैं, तो मार्ग प्लेबैक समाप्त हो जाता है।

निष्कर्ष

उम्मीद है कि इससे कुछ अंतर्दृष्टि मिली होगी कि ऐप कैसे काम करता है। ऐप हमेशा उपयोगकर्ताओं की प्रतिक्रिया के आधार पर विकसित होता रहता है इसलिए यदि आपको लगता है कि कुछ जोड़ा जा सकता है तो कृपया संपर्क करें।


This site uses Just the Docs, a documentation theme for Jekyll.