Intereting Posts
आईओएस 7.0 में क्षैतिज CAGradientLayer एप्लिकेशन पैकेज का निरीक्षण नहीं किया जा सका कैसे आईफोन में पिछले तारीख से मौजूदा तिथि की तुलना करें? एक्सकोड में पानी का निशान लगाएं मोबाइल सफारी और जेनेट इवेंट्स, फायरिंग कुछ भी नहीं है? कौन सा फोंट IOS 9 में उपलब्ध हैं? आईओएस – यूआईवीयूव एनिमेट में पूर्णता वाला ब्लॉग्जविथडिअलेशन को बहुत जल्दी कहा जाता है कोर एनीमेशन के साथ पूरी तरह से कस्टम एनीमेशन करना – प्रदर्शन आईएसओ / एंड्रॉइड के लिए एक बटन दबाए रखें – एएस 3 रन कोड लगातार यूआईटीबल वीवडाटासोर का प्रयोग कस्टम सेल्स के साथ सबव्यूज़ होने के लिए कैसपेलेयर छाया Xcode आईओएस संस्करण का पता लगाता है और तदनुसार स्टोरीबोर्ड दिखाता है आईओएस में जीएल के लिए बनावट के रूप में वीडियो का उपयोग करना संभव है? स्विफ्ट 3 प्रोजेक्ट में एकता कार्यान्वयन: ऐप लॉन्च पर क्रैश – मेटाडाटा कैचे :: आरंभ () स्विफ्ट वैकल्पिक बाइंडिंग ट्यूपल्स के साथ

आईओएस में कोर स्थान और कोर मोशन फ्रेमवर्क से चुंबकीय क्षेत्र के मूल्यों के बीच अंतर क्या है?

आईओएस डिवाइस के मैगनेटोमीटर का इस्तेमाल करते हुए मेरे चुंबकीय क्षेत्र (शक्ति, एक्स, वाई, और जेड) प्राप्त करने के दो तरीके हैं I

1) कोर स्थान
CLLocationManagerDelegate से CLHeading का उपयोग किया गया हैनिश्चित विधि locationManager:didUpdateHeading: :। यह एप्पल के टेस्लामिटर नमूना ऐप के समान है

2) कोर मोशन
CMMotionManager के magnetometerData.magneticField से प्रयुक्त CMMagneticField

प्रशन:
क) दोनों के बीच अंतर क्या है? मुझे दोनों से अलग मूल्य मिल रहा है मुझे उम्मीद थी कि वे उसी मूल्यों को वापस देंगे।
अंतर सबसे उल्लेखनीय है जब मैं ऐप्प को आराम करने की स्थिति (एक टेबल में ऊपर) से शुरू करता हूं और फिर डिवाइस को हवा में ऊपर उठाता हूं
ख) यदि कोई फर्क पड़ता है, मुझे कोर स्थान शीर्षक से चुंबकीय क्षेत्र का उपयोग कब करना चाहिए, और कब मैं कोर मोशन से चुंबकीय क्षेत्र का उपयोग करना चाहिए?

नोट: मुझे यह भी निश्चित नहीं है कि कोर स्थान और कोर मोशन का "चुंबकीय क्षेत्र" विभिन्न चुंबकीय क्षेत्र अवधारणाओं को दर्शाता है।
नोट: मैं दोनों तरीकों के लिए (x ^ 2 + y ^ 2 + z ^ 2) का वर्गमूल के रूप में ताकत को गणना करता हूं

Solutions Collecting From Web of "आईओएस में कोर स्थान और कोर मोशन फ्रेमवर्क से चुंबकीय क्षेत्र के मूल्यों के बीच अंतर क्या है?"

यह जानने के लिए कि मैंने एप्पल डॉक्स के माध्यम से खुदाई करने में थोड़ी देर बिताई है।

मैग्नेटोमीटर डेटा प्राप्त करने के तीन तरीके हैं

1 / कोर मोशन फ्रेमवर्क
CMMotion प्रबंधक का CMMagnetometer वर्ग

2 / कोर मोशन फ्रेमवर्क
CMDeviceMotion CMCalibratedMagneticField संपत्ति

3 / कोर स्थान ढांचे
CLLocationManager की CLHeading

1 / मैगनेटोमीटर से 'कच्चा' डेटा प्रदान करता है
2 / और 3 / रिटर्न 'व्युत्पन्न' डेटा दोनों मामलों में संख्या समान होती है (हालांकि बिल्कुल नहीं)।

कोर मोशन के CMMagnetometer और सीएमसीलब्रेटेड मैग्नेटिकफिल्ड के बीच का अंतर

कोर मोशन फ्रेमवर्क से 1 / और 2 / – दोनों – इस प्रकार से भिन्न है:

CMDeviceMotion कक्षा संदर्भ

 @property(readonly, nonatomic) CMCalibratedMagneticField magneticField 

विचार-विमर्श
इस संपत्ति से लौटाया गया सीएमसीलब्रेटेड मैग्नेटिकफिल्ड डिवाइस के पूर्वाग्रह के बिना डिवाइस के आसपास के क्षेत्र में आपको कुल चुंबकीय क्षेत्र देता है। CMMagnetometer वर्ग की चुंबकीय फिल्ड प्रॉपर्टी के विपरीत, ये मूल्य पृथ्वी के चुंबकीय क्षेत्र और आसपास के क्षेत्र को दर्शाते हैं, माइनस डिवाइस पूर्वाग्रह।

सीएममैगनेटोमीटर हमें कच्चा डेटा देता है, सीएमसीलब्रेटेड मैग्नेटिकफिल्ड को समायोजित डाटा है।

कोर मोशन की सीएमसीलब्रेटेड मैग्नेटिकफिल्ड और कोर स्थान के CLHeading के बीच का अंतर

दस्तावेज़ 2 / और 3 / के बीच अंतर पर तुरंत स्पष्ट नहीं हैं, लेकिन वे अलग-अलग संख्याएं पैदा करते हैं, तो कुछ खुदाई करते हैं …।

कोर स्थान ढांचा
CLHeading

स्थान जागरूकता प्रोग्रामिंग गाइड से

शीर्षक-संबंधित घटनाएं प्राप्त करना

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

यहां प्रासंगिक CLHeading 'कच्चा' गुण हैं

 @property(readonly, nonatomic) CLHeadingComponentValue x @property(readonly, nonatomic) CLHeadingComponentValue y @property(readonly, nonatomic) CLHeadingComponentValue z 

[X | y | z] -Xis के लिए भौगोलिक डेटा (माइक्रोट्सलास में मापा जाता है) (सिफ़ पढ़िये)
यह मान डिवाइस द्वारा ट्रैक किए जा रहे चुंबकीय क्षेत्र लाइनों से [x | y | z] -Xis विचलन को दर्शाता है ( डॉक्स के पुराने संस्करण जोड़ें 🙂 इस प्रॉपर्टी द्वारा रिपोर्ट किए गए मान को -128 से +128 तक सामान्यीकृत किया गया है

मैं स्पष्ट नहीं हूं कि माइक्रोटलाले माप किस प्रकार 'सामान्यीकृत' (संकुचित? कटा हुआ?) +/- 128 की एक श्रेणी के लिए हो सकता है और अभी भी उस इकाई का प्रतिनिधित्व करता है जो इसे मापने का दावा करता है शायद यही वजह है कि दस्तावेज़ को डॉक्स से निकाल दिया गया था। आईपैड मिनी की इकाइयां इस तरह की श्रेणी के अनुरूप दिखती हैं, लेकिन आईफोन 4 एस उच्च श्रेणी में सीएमएमएगनेटोमीटर रीडिंग देता है, जैसे 200-500

एपीआई स्पष्ट रूप से आपको व्युत्पन्न गुणों का उपयोग करने की अपेक्षा करता है:

 @property(readonly, nonatomic) CLLocationDirection magneticHeading @property(readonly, nonatomic) CLLocationDirection trueHeading 

जो डिग्री में स्थिर एन / एसई / डब्ल्यू कम्पास रीडिंग देते हैं (0 = उत्तर, 180 = दक्षिण आदि)। सही शीर्षक के लिए, असली कोर से चुंबकीय विचलन प्राप्त करने के लिए अन्य कोर स्थान सेवाओं की आवश्यकता है (जियोलोकेशन)।

यहां CLHeading हैडर फ़ाइल से एक स्निपेट है CLHeading

 /* * CLHeading * * Discussion: * Represents a vector pointing to magnetic North constructed from * axis component values x, y, and z. An accuracy of the heading * calculation is also provided along with timestamp information. * * x|y|z * Discussion: * Returns a raw value for the geomagnetism measured in the [x|y|z]-axis. 

कोर मोशन फ्रेमवर्क
CMDeviceMotion CMCalibratedMagneticField

 /* * magneticField * * Discussion: * Returns the magnetic field vector with respect to the device for devices with a magnetometer. * Note that this is the total magnetic field in the device's vicinity without device * bias (Earth's magnetic field plus surrounding fields, without device bias), * unlike CMMagnetometerData magneticField. */ @property(readonly, nonatomic) CMCalibratedMagneticField magneticField NS_AVAILABLE(NA,5_0); 

CMMagnetometer

  * magneticField * * Discussion: * Returns the magnetic field measured by the magnetometer. Note * that this is the total magnetic field observed by the device which * is equal to the Earth's geomagnetic field plus bias introduced * from the device itself and its surroundings. */ @property(readonly, nonatomic) CMMagneticField magneticField; 

CMMagneticField
यह संरचना है जो वेक्टर को रखती है।
यह CMDeviceMotion के calibrated चुंबकीय क्षेत्र और CMMagnetometer के uncalibrated संस्करण के लिए ही है:

 /* CMMagneticField - used in * CMDeviceMotion.magneticField.field * CMMagnetometerData.magneticField * * Discussion: * A structure containing 3-axis magnetometer data. * * Fields: * x: * X-axis magnetic field in microteslas. * y: * Y-axis magnetic field in microteslas. * z: * Z-axis magnetic field in microteslas. 

2 / और 3 / के बीच का अंतर यहाँ संकेत दिया गया है:

कोर स्थान सीएल हेडिंग

का प्रतिनिधित्व करता है एक वेक्टर जो इंगित करता है चुंबकीय उत्तर अक्ष घटक x, y, और z से निर्मित है

कोर स्थान डिवाइस के साथ चलने वाले क्षेत्रों को फ़िल्टर करने के लिए पर्याप्त स्मार्ट है

कोर मोशन सीएमसीलब्रेटेड मैग्नेटिकफिल्ड

[पृथ्वी के चुंबकीय क्षेत्र और आस-पास के क्षेत्र , डिवाइस पूर्वाग्रह के बिना] का प्रतिनिधित्व करता है

तो – डॉक्स के अनुसार – हमारे पास:

1 / CMMagnetometer
मैगनेटोमीटर से कच्चे रीडिंग

2 / CMDeviceMotion (CMCalibratedMagneticField *) चुंबकीयफिल्ड
मैगनेटोमीटर रीडिंग डिवाइस पूर्वाग्रह के लिए सही (चुंबकीय क्षेत्र में जहाज पर)

3 / CL हेडिंग [x | y | z]
मैगनेटोमीटर रीडिंग डिवाइस पूर्वाग्रह के लिए सही और स्थानीय बाहरी चुंबकीय क्षेत्र को खत्म करने के लिए फ़िल्टर्ड (जैसा कि डिवाइस आंदोलन द्वारा पता लगाया गया है – अगर फ़ील्ड डिवाइस के साथ चलता है, इसे अनदेखा करें; अन्यथा इसे मापें)

सिद्धांत का परीक्षण

यहां छवि विवरण दर्ज करें

मैंने gitHub पर मैग्नेट-ओ-मीटर डेमो ऐप लगाया है जो इन अंतरों में से कुछ प्रदर्शित करता है। एप चल रहा है और देख रहा है कि विभिन्न एपीआई कैसे प्रतिक्रिया करता है जब यह आपके डिवाइस के चारों ओर एक चुंबक को लहरने के लिए काफी खुलासा करता है:

CMMagnetometer कुछ भी करने के लिए कुछ भी प्रतिक्रिया नहीं करता है जब तक आप एक दुर्लभ पृथ्वी चुंबक को बंद खींच नहीं है। जहाज पर चुंबकीय क्षेत्र स्थानीय बाहरी क्षेत्रों या पृथ्वी के चुंबकीय क्षेत्र की तुलना में अधिक महत्वपूर्ण लगते हैं। मेरे आईफोन 4 एस पर यह लगातार डिवाइस के निचले हिस्से को इंगित करता है; आईपैड मिनी पर यह आमतौर पर शीर्ष दाहिनी ओर इंगित करता है

CLHeading। [X | y | z] स्थानीय बाहरी क्षेत्रों के लिए सबसे कमजोर (उत्तरदायी) है, चाहे डिवाइस पर चलती या स्थिर रिश्तेदार।

(सीएमडीवाइस) सीएमसीलब्रेटेड मैग्नेटिकफिल्ड बाहरी क्षेत्रों के अलग-अलग होने के चेहरे में सबसे स्थिर है, लेकिन अन्यथा इसे कोर स्थान के समकक्ष CLHeading पर नजर रखता है। [X | y | z] बहुत करीब से

CLHeading.magneticHeading – मैग्नेटिक कंपास रीडिंग के लिए ऐप्पल की सिफारिश – इन में से किसी की तुलना में कहीं अधिक स्थिर है। यह मैगनेटोमीटर डेटा को स्थिर करने के लिए अन्य सेंसरों के डेटा का उपयोग कर रहा है। लेकिन आपको एक्स, वाई, जेड का एक कच्चा ब्रेकडाउन नहीं मिलता है

  influenced by onboard fields local external fields earth's field yellow XXX green _ XX blue _ _ X red _ _ X 

पीला CMMagnetometer
हरे सीएल हेडिंग। [x | y | z]
नीली सीएमसीलब्रेटेड मैग्नेटिकफिल्ड
लाल CLHeading.magneticHeading

यह डॉक्स का खंडन करने लगता है, जो सुझाव देता है कि CLHeading। [X | y | z] सीएमसीलब्रेटेड मैग्नेटिकफिल्ड की तुलना में स्थानीय बाहरी क्षेत्रों से कम प्रभावित होना चाहिए।

आपको क्या दृष्टिकोण चाहिए? मेरे सीमित परीक्षण के आधार पर, मैं सुझाव दूंगा …
यदि आप एक कम्पास पढ़ना चाहते हैं
सीएल हेडिंग का magneticHeading trueHeading और trueHeading आपको सबसे सटीक और सबसे स्थिर कम्पास पढ़ने देगी।
यदि आपको कोर स्थान से बचने की आवश्यकता है
CMDeviceMotion की CMCalibratedMagneticField अगले सबसे ज्यादा वांछनीय है, हालांकि magneticHeading CMCalibratedMagneticField से काफी कम स्थिर और सटीक है।
यदि आप स्थानीय चुंबकीय क्षेत्रों में रुचि रखते हैं
CLHeading के 'कच्चे' एक्सआई और जेड गुण स्थानीय चुंबकीय क्षेत्रों के प्रति अधिक संवेदनशील होते हैं।
यदि आप चुंबकीय क्षेत्रों सहित जहाज के सभी डेटा चाहते हैं
CMMagnetometer से कच्चे मैगनेटोमीटर डेटा। वास्तव में इसका उपयोग करने में बहुत ज्यादा बात नहीं है, जब तक कि आप छानने के लिए तैयार नहीं होते हैं, क्योंकि यह डिवाइस पर उत्पन्न चुंबकीय क्षेत्र से बेहद प्रभावित होता है।

यह उत्तर नीचे दिए गए दस्तावेज़ लिंक की मेरी व्याख्या पर आधारित है

http://developer.apple.com/library/ios/#documentation/CoreLocation/Reference/CLHeading_Class/Reference/Reference.html#//apple_ref/doc/c_ref/CLHeading

http://developer.apple.com/library/ios/#documentation/CoreMotion/Reference/CMMagnetometerData_Class/Reference/Reference.html#//apple_ref/doc/c_ref/CMMagnetometerData

क) सीएल हेडिंग "डिवाइस द्वारा ट्रैक किए जाने वाले चुंबकीय क्षेत्र लाइनों से विचलन " है, जबकि मैग्नेटोमीटरडेटा.मैगनेटिकफिल्ड "डिवाइस के द्वारा देखे गए कुल चुंबकीय क्षेत्र है जो कि पृथ्वी के भौगोलिक क्षेत्र के बराबर होता है प्लस उपकरण और इसके आस-पास से पेश पूर्वाग्रह" ।

तो सीएल हेडिंग आपको फ़्रेम किए गए मानों को संदर्भ के फ़्रेम के साथ देता है जो पृथ्वी के विद्यमान चुंबकीय क्षेत्र है। जबकि मैग्नेटोमीटरडेटा आपको डिवाइस के संदर्भ के फ़्रेम के साथ अनफ़िल्टर्ड मान देता है।

ख) यदि आप स्थान के साथ कुछ भी कर रहे थे जहां आप जानना चाहते थे कि चुंबकीय या सही उत्तर कहां है तो मैं CLHeading का उपयोग करने की सलाह देता हूं। यदि आप एक ऐप तैयार करना चाहते हैं जो तत्काल आस-पास के उपकरणों में चुंबकीय क्षेत्र का जवाब देता है या आपके पास कुछ विशिष्ट संवेदक फ्यूजन हैं, तो आप ऐसा प्रदर्शन करना चाहते हैं, उदाहरण के लिए एएचआरएस बनाने की कोशिश करें तो सीएम मैग्नेटिकफिल्ड के साथ जाएं।

CLHeading का उपयोग करते समय याद रखना एक महत्वपूर्ण बात है। स्थानीय चुंबकीय क्षेत्र ताकत की गणना करने के लिए [x | y | z] मान यह है कि CLLocationManagerDelegate विधि

  • (BOOL) locationManagerShouldDisplayHeadingCalibration: (CLLocationManager *) प्रबंधक

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

मुझे लगता है कि मैग्नेटोमीटरडेटा.मैग्नेटिक फिल्ड यह आपको त्वरण बता रहा है, स्थिति नहीं (इसलिए आप बड़े मूल्यों को अब भी आगे बढ़ने के लिए आगे बढ़ते हैं), जबकि स्थान प्रबंधक डिवाइस पर दिये गये दिशा में डेटा प्रदान करता है।