I want my program to display the users location on the map. It was working at first then randomly stopped so i added the code below to try to fix it but I'm having problems. Thanks in advance!
override func viewDidLoad()
{
super.viewDidLoad()
self.locationManager.delegate = self
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest
if CLLocationManager.locationServicesEnabled()
{
let status: CLAuthorizationStatus = CLLocationManager.authorizationStatus()
if status == CLAuthorizationStatus.NotDetermined
{
locationManager.requestAlwaysAuthorization()
}
} else {
print("locationServices disenabled")
}
locationManager.startUpdatingLocation()
self.locationManager.startUpdatingLocation()
self.mapView.showsUserLocation = true
mapView.delegate = self
centerMapOnLocation(initialLocation)
addBoundry()
}
You required to call,
locationManager.requestAlwaysAuthorization()
as well
locationManager.requestWhenInUseAuthorization()
to use location smoothly in foreground also!!!
and you should not need two instance to call startupdatinglocation
. keep one. you should use instance or global variable instead of local to get location throughout the scope.
Update :
You have to set two keys in info.plist
like, NSLocationAlwaysUsageDescription
and NSLocationWhenInUseUsageDescription
with it's usage description.