2011-11-07 11 views
5

मैं अपने iPhone एप्लिकेशन में निम्नलिखित समस्या आ रही है साथ पुराने स्थान दे रही है:स्थान प्रबंधक नया टाइम स्टांप

मैं एक नियमित आधार पर स्थान प्रबंधक को सक्षम और मैं कई स्थान अद्यतन के लिए प्रतीक्षा करें। जब एक नया स्थान प्राप्त है, मैं नए स्थान की टाइमस्टैम्प संपत्ति की जांच जानने के लिए कि यह एक पुराने स्थान है या नहीं:

समस्या मैं अब आ रही है

है कि मैं नए स्थानों प्राप्त जहां टाइमस्टैम्प नया है लेकिन निर्देशांक अभी भी पुराने स्थान हैं जिन्हें मैंने पहले प्राप्त किया था। मैंने इसका परीक्षण किया जब मैं अपनी कार को 120 किमी/घंटा पर एक ही निर्देशांक प्राप्त करने के साथ कई बार प्राप्त कर रहा था लेकिन विभिन्न टाइमस्टैम्प के साथ। मुझे आईओएस 4 & में एक ही समस्या है 5.

यह कैसे संभव है? या मैं इस समस्या से कैसे निपट सकता हूं?

+0

क्ल्लोकेशन प्रबंधक के लिए आप किस सटीकता से पूछते हैं? – jackslash

+0

@jackslash: मैं 'वांछित अधिकार = KCLLocationAccuracyBest' – wjans

+0

का उपयोग करता हूं, कृपया' -मोशन मैनेजर का कार्यान्वयन पोस्ट करें: didUpdateToLocation: स्थान से: '। –

उत्तर

1

आईफोन को अपना स्थान प्राप्त करने के कुछ तरीके हैं।

  • सेल संकेत
  • wifi पहुंच बिंदुओं
  • जीपीएस उपग्रह

सबसे तेजी से स्थान देखने है सेल संकेत स्थान। जब तक आपके पास हाल ही में डेटा था, स्थानीय टावरों में से अधिकांश को कैश किया जाएगा। सेल टॉवर सटीकता 500 मीटर से 1500 मीटर या उससे अधिक तक हो सकती है।

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

सबसे धीमा जीपीएस है। आईफोन में जीपीएस एजीपीएस है। यह आपकी स्थिति पर बेहतर सुधार प्राप्त करने के लिए सेल टावर स्थानों से डेटा का उपयोग करता है। अगर फोन में डेटा कनेक्शन नहीं है और वाईफाई के पास नहीं है तो इसे ठीक करने के लिए 2 से 4 मिनट लग सकते हैं। सेल टावर की जानकारी के साथ इसमें 30 सेकंड लग सकते हैं।

सेब डॉक्स से:

जब उच्च सटीकता स्थान डेटा का अनुरोध, प्रारंभिक स्थान सेवा द्वारा दिया घटना सटीकता आपके द्वारा अनुरोध नहीं हो सकता है। स्थान सेवा प्रारंभिक घटना जितनी जल्दी हो सके प्रदान करती है। इसके बाद यह आपके द्वारा अनुरोध की गई सटीकता के साथ स्थान निर्धारित करना जारी रखता है और आवश्यकतानुसार अतिरिक्त ईवेंट प्रदान करता है, जब वह डेटा उपलब्ध होता है।

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

डेटा की क्षैतिज सटीकता की जांच करें, साथ ही टाइमस्टैम्प की जांच करें कि यह निर्धारित करने के लिए कि क्या स्थान आपके अनुरोध के अनुसार सटीक है या नहीं।

+0

मुझे यह समस्या बहुत अच्छी क्षैतिज सटीकता (यानी 47.42 मीटर) के साथ भी मिलती है। एकमात्र समस्या यह है कि स्थान पुराना है लेकिन टाइमस्टैम्प बदल गया है। मैं समझता हूं कि यह कैश हो जाता है, लेकिन फिर मुझे उम्मीद है कि टाइमस्टैम्प टाइमस्टैम्प होने की उम्मीद करेगा जब स्थान पहले कब्जा कर लिया गया था और अपडेट नहीं किया गया था (अधिक हालिया)। इस तरह से मैं यह नहीं पहचान सकता कि मैंने पुराने कैश किए गए स्थान को स्थानांतरित या प्राप्त नहीं किया है या नहीं। – wjans

+0

यदि क्षैतिज सटीकता मान्य और छोटी है और टाइमस्टैम्प नया है तो ऐसा लगता है कि यह एक बग हो सकता है। यदि आपके पास अपने प्रोग्राम के साथ तकनीकी सहायता घटना शेष है तो आप एक उठा सकते हैं। – jackslash

0
डिफ़ॉल्ट अपडेट स्थान के आधार पर

Cllocation प्रबंधक के रूप में

locationManager.distanceFilter = kCLDistanceFilterNone;

यही कारण है कि आपको डुप्लिकेट निर्देशांक मिल रहे हैं। वास्तव में यह ALTITUDE में परिवर्तन होने पर भी अक्सर विवरण अपडेट कर रहा है।

तो सबसे अच्छा आप

locationManager.distanceFilter = 4.0f; 

// इस नए स्थान अपडेट विवरण केवल भेज जब यू अपने वर्तमान स्थान से हर 4 मीटर की दूरी पर आ जाएगा सेट जाएगा।

+0

क्या आपको इस समस्या के आसपास अपनी समस्या ठीक हो गई है? –

+0

हां यह चाल – Manoj

+0

मैंने टाइमस्टैम्प, क्षैतिज आवृत्ति और दूरी फ़िल्टर के संयोजन के उपयोग के साथ भी इसे ठीक किया ..... चीयर्स :) –