खोज…


दूरी फ़िल्टर का उपयोग कर

उदाहरण :

   CLLocationManager *locationManager = [[CLLocationManager alloc] init];
   locationManager.delegate = self;
   locationManager.desiredAccuracy = kCLLocationAccuracyBest;
   locationManager.distanceFilter = 5;

उदाहरण के लिए ऊपर दिए गए उदाहरण कोड में, 5 मीटर से कम के स्थान परिवर्तन को कॉलबैक में नहीं भेजा जाएगा, लेकिन इसके बजाय इसे अनदेखा किया जाए।

CLLocationManager का उपयोग करके उपयोगकर्ता स्थान प्राप्त करें

1 - अपनी परियोजना में CoreLocation.framework शामिल करें; इस पर क्लिक करके पूरा किया जाता है:

root directory -> build phases -> Link Binary With Libraries

(+) बटन पर क्लिक करें, CoreLocation.framework के लिए देखें और ऐड पर क्लिक करें।

2- सोर्स कोड के रूप में खोलकर उपयोगकर्ता स्थान का उपयोग करने की अनुमति मांगने के लिए info.plist फ़ाइल को संशोधित करें। निम्नलिखित कुंजी में से किसी एक को जोड़ें: उपयोगकर्ता के स्थान का उपयोग करने के लिए पूछने के लिए टैग के तहत मूल्य जोड़ी, जबकि एप्लिकेशन उपयोग में है:

<key>NSLocationWhenInUseUsageDescription</key>
<string>message to display when asking for permission</string>

3- आयातकोलोकेशन को ViewController का उपयोग करें जो इसका उपयोग करेगा।

import CoreLocation

4- सुनिश्चित करें कि आपका ViewController CLLocationManagerDelagate प्रोटोकॉल के अनुरूप है

class ViewController: UIViewController,CLLocationManagerDelegate {}

इन चरणों के बाद, हम उदाहरण के चर के रूप में एक CLLocationManager ऑब्जेक्ट बना सकते हैं और ViewController में इसका उपयोग कर सकते हैं।

var manager:CLLocationManager!

हम यहां 'लेट' का उपयोग नहीं करते हैं क्योंकि हम प्रबंधक को अपने प्रतिनिधि, अद्यतन घटना से पहले न्यूनतम दूरी और इसकी सटीकता को निर्दिष्ट करने के लिए संशोधित करेंगे

//initialize the manager
manager = CLLocationManager()

//specify delegate
manager.delegate = self

//set the minimum distance the phone needs to move before an update event is triggered (for example:  100 meters)
manager.distanceFilter = 100

//set Accuracy to any of the following depending on your use case

//let kCLLocationAccuracyBestForNavigation: CLLocationAccuracy
//let kCLLocationAccuracyBest: CLLocationAccuracy
//let kCLLocationAccuracyNearestTenMeters: CLLocationAccuracy
//let kCLLocationAccuracyHundredMeters: CLLocationAccuracy
//let kCLLocationAccuracyKilometer: CLLocationAccuracy
//let kCLLocationAccuracyThreeKilometers: CLLocationAccuracy

manager.desiredAccuracy = kCLLocationAccuracyBest

//ask the user for permission
manager.requestWhenInUseAuthorization()

//Start collecting location information
if #available(iOS 9.0, *) {
            
   manager.requestLocation()
            
 } else {
  
   manager.startUpdatingLocation()
  
  }

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

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {}

स्थान पैरामीटर CLLocation ऑब्जेक्ट्स का एक सरणी है जो डिवाइस के वास्तविक स्थान का प्रतिनिधित्व करता है। इन वस्तुओं से, कोई भी निम्न विशेषताओं तक पहुंच प्राप्त कर सकता है: coordinate,altitude, floor, horizontalAccuracy, verticalAccuracy, timestamp, description, course, speed , और एक फ़ंक्शन distance(from:) , जो दो स्थानों के बीच की दूरी को मापता है।

नोट: स्थान की अनुमति का अनुरोध करते समय, दो अलग-अलग प्रकार के प्राधिकरण हैं।

"जब उपयोग करें" प्राधिकरण केवल एप्लिकेशन को आपके स्थान को प्राप्त करने की अनुमति देता है जब एप्लिकेशन उपयोग या अग्रभूमि में होता है।

"हमेशा" प्राधिकरण, ऐप को पृष्ठभूमि की अनुमति देता है जिसके कारण आपका ऐप बंद होने की स्थिति में बैटरी जीवन कम हो सकता है।

प्लिस्ट फ़ाइल को आवश्यक रूप से समायोजित किया जाना चाहिए।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow