cs5530 mobile wireless systems core location framework
play

CS5530 Mobile/Wireless Systems Core Location Framework Yanyan - PowerPoint PPT Presentation

CS5530 Mobile/Wireless Systems Core Location Framework Yanyan Zhuang Department of Computer Science http://www.cs.uccs.edu/~yzhuang UC. Colorado Springs CS5530 Ref. CN5E, NT@UW, WUSTL Overview Updates: o IT will upgrade Mac OS in 138 o


  1. CS5530 Mobile/Wireless Systems Core Location Framework Yanyan Zhuang Department of Computer Science http://www.cs.uccs.edu/~yzhuang UC. Colorado Springs CS5530 Ref. CN5E, NT@UW, WUSTL

  2. Overview • Updates: o IT will upgrade Mac OS in 138 o 3 iPhones, 3 iPads, 1 Apple watch o 2 Android phones, 2 Android tabs • Core Location Framework CS5530 2 Ref. CN5E, NT@UW, WUSTL

  3. Core Location Framework • Where does location come from o iOS devices employ different techniques } GPS, cell tower triangulation, IP address of available WiFi connections o Mechanism used by iOS is transparent to developer: auto uses the most accurate solution at a given time • Just use the core location framework o Key classes: CLLocationManager and CLLocation } Access and store location CS5530 3 Ref. CN5E, NT@UW, WUSTL

  4. Location Manager Class • Core Location Framework o var locationManager: CLLocationManager = CLLocationManager() o Location manager instance must seek permission from user • Location access permission o locationManager.requestWhenInUseAuthorization() o locationManager.requestAlwaysAuthorization() CS5530 4 Ref. CN5E, NT@UW, WUSTL

  5. More on Permissions • locationManager.requestWhenInUseAuthorization() • locationManager.requestAlwaysAuthorization() o Each method call requires a specific key-value pair added to Information Property List dictionary in app’s Info.plist file o Value must describe the reason why the app needs access } NSLocationWhenInUseUsageDescription } NSLocationAlwaysUsageDescription CS5530 5 Ref. CN5E, NT@UW, WUSTL

  6. More on Permissions • Info.plist • GUI CS5530 6 Ref. CN5E, NT@UW, WUSTL

  7. Location Accuracy • Level of accuracy is specified via the desiredAccuracy property of the CLLocationManager object o locationManager.desiredAccuracy = kCLLocationAccuracyBest • The greater the accuracy the greater the drain on device battery CS5530 7 Ref. CN5E, NT@UW, WUSTL

  8. Location Accuracy • The greater the accuracy the greater the drain on device battery o kCLLocationAccuracyBestForNavigation – highest accuracy: intended solely for use when device is connected to power supply o kCLLocationAccuracyBest – The highest recommended level of accuracy for devices running on battery power o kCLLocationAccuracyNearestTenMeters - Accurate to within 10m o kCLLocationAccuracyHundredMeters, kCLLocationAccuracyKilometer, kCLLocationAccuracyThreeKilometers CS5530 8 Ref. CN5E, NT@UW, WUSTL

  9. Configuring the Distance Filter • Location manager: report updates whenever any changes are detected in the location o locationManager.startUpdatingLocation() // details later • distanceFilter property allows apps to specify amount of distance the location must change before an update is triggered o locationManager.distanceFilter = 1500.0 CS5530 9 Ref. CN5E, NT@UW, WUSTL

  10. Location Manager Delegate • Location manager updates/errors result in calls to two delegate methods o func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { … } } Each time location changes, didUpdateLocations delegate method is called and passed as an argument an array of CLLocation objects: last object in the array containing the most recent location data o func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) { … } CS5530 10 Ref. CN5E, NT@UW, WUSTL

  11. Starting Location Updates • After suitably configured and authorized o locationManager.startUpdatingLocation() • With each location update, didUpdateLocations is called by the location manager and passed information about the current location CS5530 11 Ref. CN5E, NT@UW, WUSTL

  12. Obtaining Location Information from CLLocation Objects • Location information is passed through to the didUpdateLocation delegate method in the form of CLLocation objects o Latitude o Longitude o Horizontal Accuracy o Altitude o Altitude Accuracy CS5530 12 Ref. CN5E, NT@UW, WUSTL

  13. Obtaining Location Information from CLLocation Objects • Longitude and Latitude o let latitude: CLLocationDistance = location.coordinate.latitude o let longitude: CLLocationDistance = location.coordinate.longitude • Accuracy o let verticalAccuracy: CLLocationAccuracy = location.verticalAccuracy o let horizontalAccuracy: CLLocationAccuracy = location.horizontalAccuracy • Altitude o let altitude: CLLocationDistance = location.altitude CS5530 13 Ref. CN5E, NT@UW, WUSTL

  14. Getting the Current Location • Want user’s current location without the need for continuous location updates o locationManager.requestLocation() o Identify the current location and call didUpdateLocations one time passing through the current location o Location updates are automatically turned off CS5530 14 Ref. CN5E, NT@UW, WUSTL

  15. Calculating Distances • Distance between two CLLocation points can be calculated by calling distance(from:) of the end location and passing through the start location as an argument o var distance: CLLocationDistance = endLocation.distance(from: startLocation) CS5530 15 Ref. CN5E, NT@UW, WUSTL

  16. Reverse Geocode func getPlacemarkFromLocation(location: CLLocation){ CLGeocoder().reverseGeocodeLocation(location, completionHandler: {(placemarks, error) in if error {println("reverse geodcode fail: \(error)")} let pm = placemarks as [CLPlacemark] if pm.count > 0 { self.showAddPinViewController(placemarks[0] as CLPlacemark) } }) } CS5530 16 Ref. CN5E, NT@UW, WUSTL

  17. Simulating a Location in Simulator CS5530 17 Ref. CN5E, NT@UW, WUSTL

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend