AFNetworking and CLLocation Manager iOS -


मेरा प्रश्न इस प्रकार है:

स्थान सेवाओं का उपयोग करते समय स्थान कब अद्यतन किया जाता है? जब मैंने स्टार्टअपडेटिंग स्थान को कहा तो मुझे पहले से एक स्थान वापस आने की उम्मीद थी, इसलिए मैं अपने आईओएस परियोजना के लिए अक्षांश और देशांतर को पुनः प्राप्त कर सकता हूं। ये एक वेब सेवा के लिए आवश्यक पैरामीटर भी हैं, लेकिन ऐसा लगता है कि उन्हें शून्य के रूप में लौटा दिया गया है।

इंटरफ़ेस CLLocationManagerDelegate प्रोटोकॉल के अनुरूप है और मैंने इसके लिए तरीकों को लागू किया है। वैसे भी यहां मेरा कोड है:

  - (शून्य) दृश्यडिडलोड {सुपर व्यूडिडलोड]; // प्रस्तुतियों के बीच चयन को संरक्षित करने के लिए निम्नलिखित पंक्ति को दोहराएं। // self.clearSelectionOnViewWillAppear = नहीं; // इस दृश्य नियंत्रक के लिए नेविगेशन बार में एक संपादन बटन को प्रदर्शित करने के लिए निम्न पंक्ति को उल्लिखित करें। // self.navigationItem.rightBarButtonItem = self.editButtonItem; अगर ([self.parentViewControllerKindOfClass: [BTMainViewController वर्ग]]) {BTMainViewController * parent = (BTMainViewController *) self.parentViewController; Self.sessionKey = parent.session; एनएसएलॉग (@ "यूआरएल% @", सेल्फ सेशनकी) है; } LocationManager = [[CLLocationManager alloc] init]; LocationManager.delegate = self; LocationManager.desiredAccuracy = kCLLocationAccuracyBest; // भी यूआरएल को सेट करें self.serviceURL = [apiURL stringByAppendingString: @ "/ get_employee_closestlocations"]; // सेट tableview प्रतिनिधि और डेटा स्रोत self.tableView.delegate = self; Self.tableView.dataSource = self; / नेविगेशन बार के साथ EdgeInset के लिए समायोजित करें Self.tableView.contentInset = UIEdgeInsetsMake (64.0f, 0.0f, 0.0f, 0.0f); // यहां स्थानों को प्राप्त करें [locationManager startUpdatingLocation]; [स्व-फेच लोकेशन]; }  

didUpdateToLocation कार्यान्वयन

  - (शून्य) स्थान प्रबंधक: (CLLocationManager *) प्रबंधक ने अपडेटटीओ स्थान: (CLLocation *) newLocation fromLocation: (CLLocation *) oldLocation { CLLocation * currentLocation = [locationManager स्थान]; [LocationManager stopUpdatingLocation]; अगर (वर्तमान स्थान! = शून्य) {[स्वयं सेटलोग्णड्यूड्यूड: [एनएसएनम्बर संख्यावादात्मक दोहरा: वर्तमान स्थान.कोर्डिनेट.लैन्गिट्यूड]]; [स्वयं सेटलाइटिट्यूड: [एनएसएनम्बर संख्यावादात्मक दोहराएं: वर्तमान स्थान.कोर्डिनेट.लैटिडेट]]; }}  

किसी भी सुझाव का स्वागत है और पहले से धन्यवाद!

< P> प्रतिनिधि विधि जो आप उपयोग कर रहे हैं वह बहिष्कृत है। आपको locationManager: didUpdateLocations: का उपयोग करना चाहिए और फिर सरणी के अंत से स्थान अपडेट तक पहुंच प्राप्त करना चाहिए -

  - (शून्य) स्थान प्रबंधक: (CLLocationManager *) प्रबंधक ने अपडेट स्थान: (NSArray *) स्थानों {CLLocation * currentLocation = (CLLocation *) [स्थानों lastObject]; ...}  

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

मेरा सुझाव है कि आप अपना [स्वयं फ़ेच लेसेस] आह्वान करें; से doneUpdateLocations विधि

इसके अलावा, राज्यों -

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

इसलिए, एक जोखिम यह है कि जब आप स्थान का उपयोग करते हैं , यह विशेष रूप से सटीक नहीं हो सकता है आप क्षैतिज एक्क्यूरिटी संपत्ति को CLLocation की जांच कर सकते हैं और तय कर सकते हैं कि आप इस स्थान को स्वीकार करना चाहते हैं या अधिक सटीक स्थान की प्रतीक्षा करना चाहते हैं (ध्यान में रखते हुए कि यह तब नहीं पहुंच सकता है डिवाइस अंदर है या खराब रिसेप्शन है)


Comments

Popular posts from this blog

Pass DB Connection parameters to a Kettle a.k.a PDI table Input step dynamically from Excel -

multithreading - PhantomJS-Node in a for Loop -

c++ - MATLAB .m file to .mex file using Matlab Compiler -