How can I store the user's current location and also show the location on a map?
I am able to show pre-defined coordinates on a map, I just don't know how to receive information from the device.
Also I know I have to add some items into a Plist. How can I do that?
To get a user's current location you need to declare:
let locationManager = CLLocationManager()
In viewDidLoad()
you have to instantiate the CLLocationManager
class, like so:
// Ask for Authorisation from the User.
self.locationManager.requestAlwaysAuthorization()
// For use in foreground
self.locationManager.requestWhenInUseAuthorization()
if CLLocationManager.locationServicesEnabled() {
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters
locationManager.startUpdatingLocation()
}
Then in CLLocationManagerDelegate method you can get user's current location coordinates:
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
guard let locValue: CLLocationCoordinate2D = manager.location?.coordinate else { return }
print("locations = \(locValue.latitude) \(locValue.longitude)")
}
In the info.plist you will have to add NSLocationAlwaysUsageDescription
and your custom alert message like; AppName(Demo App) would like to use your current location.