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.
I was having the same issue, even with NSLocationAlwaysUsageDescription
and NSLocationWhenInUseUsageDescription
set in info.plist. My debugger told me to also set NSLocationAlwaysAndWhenInUseUsageDescription
...so I did it. It worked!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With