8

के साथ गलत कंपास शीर्षक मूल्य मैं कॉमपास शीर्षक प्राप्त करने के लिए कोरमोशन का उपयोग कर रहा हूं और मैंने कंपास शीर्षक के साथ कुछ समस्याएं देखी हैं।कोरमोशन

पहले कोरमोशन की शुरुआत में। मुझे एक CMMotionManager ऑब्जेक्ट मिला, locationManager, जो CMMotionManager का एक उदाहरण है।

// initialize CoreMotion 
motionManager = [CMMotionManager new]; 
[motionManager setDeviceMotionUpdateInterval:1.0/30.0]; 
[motionManager setShowsDeviceMovementDisplay:YES]; 
[self.motionManager startDeviceMotionUpdatesUsingReferenceFrame:CMAttitudeReferenceFrameXTrueNorthZVertical]; 

स्थिति डेटा प्रत्येक 1/30.0 सेकंड अपडेट किया जाता है।

डीबग प्रयोजनों के लिए मेरे पास एक UILabel है जो मुझे प्रत्येक अद्यतन अंतराल पर अद्यतन वर्तमान कंपास शीर्षक दिखाता है। जबकि एप्लिकेशन शुरू हो रहा है मुझे कंपास को कैलिब्रेट करने के लिए हमेशा जादुई 8 करना है।

कंपास को कैलिब्रेट करने के बाद, उत्तर और दक्षिण के लिए शीर्षक लगभग 2-5 सेकंड के लिए सही है।

कुछ सेकंड के बाद ठीक कंपास जंगली हो जाता है और कोण चारों ओर कूद रहे हैं। अधिकांशतः यह दोनों दिशाओं में शुरुआती स्थिति से 10-20 डिग्री के आसपास तैरता है। एक व्यापक परिणाम प्राप्त करने के लिए विचार किया। 30-60 सेकेंड के बाद हर बार दक्षिण और उत्तर में अंतर-परिवर्तन या पूर्व और पश्चिम में दिखाया जाता है।

डब्ल्यूडब्ल्यूडीसी 2011 में, एक सत्र के बारे में बात की गई है कि इस समस्या को भरने के लिए वे प्रत्येक सेंसर की गणना कैसे करते हैं। क्या कोरमोशन की कॉन्फ़िगरेशन में मुझे कुछ याद आया है कि मेरे पास सटीक शीर्षक परिणामों की यह बड़ी समस्याएं हैं?

मैंने इमारतों में और बाहर 3 डिवाइस (2 आईफोन 4 एस और आईफोन 4) के साथ कंपास का परीक्षण किया। मैं खेतों, छोटे शहरों और बड़े शहरों में था। हस समय यह होता रहता है। ऐप्पल से नमूना कंपास ऐप मेरे परीक्षणों में 90% सटीकता के साथ लगभग सटीक है। दुर्भाग्य से यह ऐप्पल द्वारा खुलासा नहीं किया गया है।

पढ़ने के लिए धन्यवाद।

उत्तर

3

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

डिफ़ॉल्ट रूप से हैंडसेट, अंशांकन आंकड़ा 8 क्या करेंगे यह निष्क्रिय करने के लिए, locationManagerShouldDisplayHeadingCalibration: ओवरराइड इस प्रकार है:

- (BOOL)locationManagerShouldDisplayHeadingCalibration: (CLLocationManager *)manager { 
    return NO; 
} 

यदि आप startUpdateHeading कॉल कर रहे हैं अपने प्रश्न में कोड से स्पष्ट नहीं है। यदि नहीं, तो ऐसा करने के:

if([CLLocationManager locationServicesEnabled] && [CLLocationManager headingAvailable]) { 
    [myLocationManager startUpdatingLocation]; 
    [myLocationManager startUpdatingHeading]; 
} 

यदि आप शीर्षक फ़िल्टर चालू नहीं है, मैं सलाह देते हैं कि आप ऐसा करते हैं पागल परिणाम प्राप्त कर सकते हैं। उसके बाद, didUpdateHeading कहलाते समय, आपको अपने स्थान प्रबंधक प्रतिनिधि में शीर्षक परिवर्तन मिलते हैं।

यह भी ध्यान दें कि यदि हैंडसेट लैंडस्केप मोड में है, तो आपको उचित संख्या में डिग्री (+/- 9 0) से शीर्षक समायोजित करने की आवश्यकता होगी, क्योंकि शीर्षक हमेशा पोर्ट्रेट फ्रेम संदर्भ में है।

+0

आपके उत्तर के लिए धन्यवाद। मुझे सोमवार को एक और परियोजना के लिए समय सीमा मिली और मैं अभी इसका परीक्षण नहीं कर सकता। मैं आपके सुझाव की जांच करूंगा। यह बहुत अच्छा लगता है। मैं आपको कुछ दिनों में और बता दूंगा। धन्यवाद! – DasFuxx

+0

देरी के लिए खेद है। मैं अभी परीक्षण कर रहा हूं =) – DasFuxx

+0

क्या आप कोरलोकेशन के माध्यम से कोरमोशन का उपयोग करना चाहते हैं?मुझे भी इसी तरह की समस्या है और कोरलोकेशन से होने वाली सीम अधिकतर सही है लेकिन कोरमोशन में अगर हम सही उत्तर में संदर्भ फ्रेम सेट करते हैं तो डिवाइस गति डेटा कूदने और/या बहाव लग रहा है। – pzo