कॉन्फ़िगरेशन एपीआई संदर्भ
ट्रैसलेट को Tracelet.ready(Config) को पास किए गए एकल Config ऑब्जेक्ट का उपयोग करके पूरी तरह से कॉन्फ़िगर किया गया है। इस ऑब्जेक्ट में सभी नेस्टेड उप-कॉन्फ़िगरेशन शामिल हैं।
आपके उपयोग के मामले के लिए सही सेटअप बनाने में आपकी मदद करने के लिए, हम यहां केवल पैरामीटर सूचीबद्ध नहीं करते हैं। हम समझाते हैं कि वे क्यों मौजूद हैं और आपको वास्तविक दुनिया में उनका कब उपयोग करना चाहिए।
जियोकॉन्फ़िग ऑब्जेक्ट (config.geo)
सभी भौतिक स्थान, सटीकता और नमूनाकरण तर्क को संभालता है।
देर से अनुवाद न करें
- डिफ़ॉल्ट:
DesiredAccuracy.high(जीपीएस) - क्या: स्थान हार्डवेयर के लिए लक्ष्य सटीकता।
- कब ओवरराइड करें: यदि आप एक मौसम ऐप बना रहे हैं, जिसके लिए केवल यह जानना आवश्यक है कि उपयोगकर्ता किस शहर में है, तो इसे
DesiredAccuracy.low(सेलुलर/वाई-फाई) पर ओवरराइड करें।highका उपयोग करने के लिए भौतिक जीपीएस चिप की आवश्यकता होती है, जिससे बैटरी 10 गुना तेजी से खत्म होती है।
देर से अनुवाद न करें
- डिफ़ॉल्ट:
10.0(मीटर) - क्या: किसी नए बिंदु को रिकॉर्ड करने से पहले डिवाइस को न्यूनतम क्षैतिज दूरी तय करनी होगी।
- कब ओवरराइड करें: यदि आप अटलांटिक के पार एक समुद्री मालवाहक जहाज पर नज़र रख रहे हैं, तो इसे
1000.0(1 किमी) पर सेट करें। एक जहाज अचानक 10 मीटर का मोड़ नहीं लेता है, और हर 10 मीटर पर अंक बचाने से आपके डेटाबेस में अरबों बेकार पंक्तियाँ बन जाएंगी।
देर से अनुवाद न करें
- डिफ़ॉल्ट:
25.0(मीटर) - क्या: उपयोगकर्ता के अंतिम ज्ञात बिंदु के आसपास का दायरा जहां उन्हें “स्थिर” माना जाता है।
- कब ओवरराइड करें: घने शहरी परिवेश में, जीपीएस गगनचुंबी इमारतों से “उछलता” है। यदि कोई उपयोगकर्ता किसी कैफे में बैठा है, तो उसका जीपीएस सड़क से 40 मीटर नीचे उछल सकता है। यदि
stationaryRadiusबहुत छोटा है, तो ट्रैसलेट सोचेगा कि उपयोगकर्ता चल रहा है और जीपीएस चालू कर देगा, जिससे बैटरी खत्म हो जाएगी। न्यूयॉर्क या टोक्यो जैसे शहरों में इसे50.0पर सेट करें।
देर से अनुवाद न करें
- डिफ़ॉल्ट:
false - क्या: स्वचालित रूप से मूल ओएस जियोकोडर (एप्पल मैप्स / गूगल प्ले सर्विसेज) को रिवर्स-जियोकोड निर्देशांक को मानव-पठनीय सड़क पते में कॉल करता है।
- कब ओवरराइड करें: यदि आपका ऐप एक माइलेज ट्रैकर है जिसे उपयोगकर्ताओं को यह दिखाने की ज़रूरत है कि उन्होंने किस सड़क पर यात्रा शुरू की और किस सड़क पर समाप्त की, तो इसे
trueपर सेट करें। हालाँकि सावधान रहें: रिवर्स जियोकोडिंग के लिए लाइव इंटरनेट कनेक्शन की आवश्यकता होती है और स्थान पाइपलाइन में HTTP विलंबता जुड़ जाती है। यदि आप हर 5 सेकंड में अंक रिकॉर्ड करते हैं तो इसका उपयोग न करें, क्योंकि आपको ओएस द्वारा दर-सीमित मिलेगी।
disableElasticity और elasticityMultiplier
- डिफ़ॉल्ट:
false,1.0 - क्या: उपयोगकर्ता की गति के आधार पर
distanceFilterको गतिशील रूप से फैलाता है। - कब ओवरराइड करें: यदि आप 300 किमी/घंटा की रफ्तार से चलने वाली हाई-स्पीड ट्रेन को ट्रैक कर रहे हैं, तो डिवाइस एक सेकंड के एक अंश में 10 मीटर की दूरी तय कर लेता है। ट्रैसलेट स्वाभाविक रूप से दूरी फ़िल्टर को गति से गुणा कर देगा। यदि आप उच्च गति पर और भी कम अंक चाहते हैं, तो
elasticityMultiplierको बढ़ाकर2.0करें। यदि आपके पास गति की परवाह किए बिना सटीक 10-मीटर डॉट ट्रेल होना चाहिए (उदाहरण के लिए, सड़क-दृश्य इमेजरी खींचना), तोdisableElasticity: trueसेट करें।
देर से अनुवाद न करें
- डिफ़ॉल्ट:
0.0(अक्षम) - क्या: प्रति घंटे लक्ष्य अधिकतम बैटरी ख़त्म प्रतिशत।
- कब ओवरराइड करें: यदि आपके एंटरप्राइज़ क्लाइंट शिकायत कर रहे हैं कि आपका ऐप लंच के समय उनके ड्राइवरों के फोन बंद कर देता है, तो इसे
1.5(प्रति घंटे 1.5% ड्रेन) पर सेट करें। ट्रैसलेट स्वचालित रूप से बैटरी एपीआई की निगरानी करेगा। यदि ड्रेन 1.5% से अधिक हो जाती है, तो यहdesiredAccuracyको डाउनग्रेड कर देता है और बिजली बचाने के लिएdistanceFilterको गतिशील रूप से बढ़ा देता है।
AndroidConfig ऑब्जेक्ट (config.android)
Android विशिष्ट OS बाधाएँ और अनुकूलन।
देर से अनुवाद न करें
- डिफ़ॉल्ट:
false - क्या: जब डिवाइस पूरी तरह से स्थिर स्थिति में प्रवेश करता है तो OEM वेकलॉक को गिरा देता है (केवल
MotionDetectionMode.smartका उपयोग करते समय लागू होता है)। - कब ओवरराइड करें: यदि आपका ऐप उन डिलीवरी ड्राइवरों द्वारा उपयोग किया जाता है जो भोजन की प्रतीक्षा में रेस्तरां के अंदर 30 मिनट बिताते हैं। वैकलॉक जारी करने से फोन का सीपीयू गहरी नींद में चला जाता है, जिससे बड़ी मात्रा में बैटरी की बचत होती है, जबकि ड्राइवर जैसे ही अपनी कार में वापस जाना शुरू करता है, सीपीयू को तुरंत जगाने के लिए हार्डवेयर एक्सेलेरोमीटर पर निर्भर रहता है।
लोकेशनफ़िल्टर ऑब्जेक्ट (config.geo.filter)
आपके डेटाबेस तक पहुंचने से पहले खराब जीपीएस डेटा को साफ कर देता है।
देर से अनुवाद न करें
- डिफ़ॉल्ट:
80(एम/एस) - क्या: स्थान परिवर्तन को अस्वीकार करता है जिसका अर्थ है कि उपयोगकर्ता इस गति से अधिक तेज़ यात्रा कर रहा है।
- कब ओवरराइड करें: 80 मीटर/सेकेंड लगभग 288 किमी/घंटा (अधिकांश कारों की तुलना में तेज़) है। यदि आप किसी वाणिज्यिक एयरलाइन की उड़ान पर नज़र रख रहे हैं, तो एक जेट 900 किमी/घंटा की गति से चलता है। आपको इसे
300m/s तक बढ़ाना होगा, अन्यथा ट्रैसलेट सोचेगा कि प्रत्येक स्थान बिंदु एक गड़बड़ है और इसे फेंक देगा!
देर से अनुवाद न करें
- डिफ़ॉल्ट:
50(मीटर) - क्या: इस मान से खराब सटीकता वाले अंक कुल यात्रा दूरी ओडोमीटर में नहीं जोड़े जाते हैं।
- कब ओवरराइड करें: यदि आप गिग-इकोनॉमी ड्राइवरों को मील के हिसाब से भुगतान कर रहे हैं, तो नदी के पार 500 मीटर का खराब जीपीएस उछाल उनके वेतन को अनुचित रूप से बढ़ा देगा। इस सीमा को सख्त रखना (उदाहरण के लिए,
30) यह सुनिश्चित करता है कि आप केवल सिद्ध, अत्यधिक-सटीक दूरी के लिए भुगतान करें।
देर से अनुवाद न करें
- डिफ़ॉल्ट:
false - क्या: यह पता लगाता है कि उपयोगकर्ता नकली जीपीएस स्पूफ़र ऐप का उपयोग कर रहा है या नहीं।
- कब ओवरराइड करें: यदि आप पोकेमॉन गो क्लोन या राइडशेयर ऐप बना रहे हैं, तो उपयोगकर्ता सिस्टम को धोखा देने के लिए अपने स्थान को खराब करने का प्रयास करेंगे। नकली निर्देशांक को तुरंत हटाने के लिए इसे
trueपर सेट करें।
AppConfig ऑब्जेक्ट (config.app)
ऐप जीवनचक्र व्यवहार को नियंत्रित करता है।
देर से अनुवाद न करें
- डिफ़ॉल्ट:
true - क्या: जब उपयोगकर्ता ऐप को हाल की ऐप्स सूची से दूर स्वाइप कर दे तो क्या ट्रैकिंग बंद हो जानी चाहिए?
- कब ओवरराइड करें: सोशल ऐप्स (फाइंड माई फ्रेंड्स) के लिए, उपयोगकर्ता उम्मीद करते हैं कि जब वे ऐप को फोर्स-किल करेंगे तो ट्रैकिंग बंद हो जाएगी। एंटरप्राइज़ फ़्लीट ट्रैकिंग के लिए, ड्राइवर को बिना किसी परवाह के ट्रैक किया जाना चाहिए। फ़्लीट ट्रैकिंग के लिए
stopOnTerminate: falseसेट करें, और जब उपयोगकर्ता ऐप को बलपूर्वक बंद कर देगा तो ट्रैसलेट तुरंत पृष्ठभूमि में स्वयं को रीबूट कर देगा।
एंटरप्राइज़ कॉन्फ़िगरेशन
देर से अनुवाद न करें
- क्या: SQLCipher का उपयोग करके स्थानीय SQLite डेटाबेस को एन्क्रिप्ट करता है।
- कब उपयोग करें: यदि आप HIPAA-अनुपालक रोगी ट्रैकिंग, या सैन्य कर्मियों को ट्रैक कर रहे हैं, तो डिवाइस तक स्थानीय भौतिक पहुंच उनके ऐतिहासिक मार्गों से समझौता कर सकती है। एन्क्रिप्शन कुंजी प्रदान करना यह सुनिश्चित करता है कि डिवाइस चोरी होने पर डेटाबेस बेकार है।
- इसका अनुरोध/उपयोग कैसे करें: ट्रैसलेट एक क्रिप्टोग्राफ़िक सहायक प्रदान करता है। पहले ऐप लॉन्च पर एक सुरक्षित यादृच्छिक 256-बिट कुंजी उत्पन्न करने के लिए
await tl.Tracelet.generateEncryptionKey()को कॉल करें, इसे सुरक्षित रूप से संग्रहीत करें (उदाहरण के लिए,flutter_secure_storageका उपयोग करके), और इसे बाद के बूट परConfigमें पास करें:// 1. Generate & store on first run final secureKey = await tl.Tracelet.generateEncryptionKey(); await secureStorage.write(key: 'db_key', value: secureKey); // 2. Pass to config final config = tl.Config( security: tl.SecurityConfig(encryptionKey: secureKey), );
देर से अनुवाद न करें
- क्या: उन भौगोलिक बहुभुजों को परिभाषित करें जहां ट्रैकिंग स्वचालित रूप से अक्षम है।
- कब उपयोग करें: कई यूरोपीय देशों में संघ के नियम नियोक्ताओं को डिलीवरी ड्राइवरों पर नज़र रखने से रोकते हैं जब वे घर पर या यूनियन हॉल में दोपहर का भोजन करते हैं। यूनियन हॉल को
PolygonZoneके रूप में परिभाषित करें, और ट्रैसलेट उनके अंदर रहने के दौरान ट्रैकिंग को ब्लैक-आउट कर देगा, और उनके बाहर निकलने पर ही फिर से शुरू होगा। - एक कैसे बनाएं:
tl.PolygonZoneऑब्जेक्ट की एक सूचीPrivacyConfigमें पास करें।final config = tl.Config( privacy: tl.PrivacyConfig( zones: [ tl.PolygonZone( id: 'union_hall', points: [ tl.LatLng(48.8566, 2.3522), tl.LatLng(48.8568, 2.3525), tl.LatLng(48.8563, 2.3530), ] ) ] ) );