Subject: didEnterRegion accuracy - how to improve?

I have circular regions for a map (most have 30m radius). didEnterRegion
for the location manager trip in advance of entering the regions...
sometimes by many meters. Is there a way to enforce better accuracy? I
already use

locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation
locationManager.distanceFilter = kCLDistanceFilterNone

I have employed a little check that shows that indeed the userLocation is
NOT within the region when it's triggered for entry.

func locationManager(_ manager: CLLocationManager, didEnterRegion region:
var containsPoint = false
var extraMessage = "Seems correct."
if manager.location != nil
let locationCoordinate = manager.location!.coordinate
let theRegion = region as! CLCircularRegion

// + 50 below is to see if adding some to the radius helps.
Doesn't seem to.
let circularRegion = CLCircularRegion(center:,
radius:theRegion.radius + 50 , identifier: theRegion.identifier)
containsPoint = circularRegion.contains(locationCoordinate)

let point1 = MKMapPointForCoordinate(locationCoordinate)
let point2 = MKMapPointForCoordinate(
let distance:CLLocationDistance =
MKMetersBetweenMapPoints(point1, point2)
let roundedDistance = Double(round(1000 * distance)/1000)
let distanceString = "\(roundedDistance)m between points.
\(theRegion.radius)m radius."

if containsPoint == false {
extraMessage = "Doesn't seem accurate. \(distanceString)"

Since I need this to happen in the background or when the app isn't running
at all, I need to rely on didEnterRegion (startMonitoring for region). Do I
need to do someth...

ing special?


Cocoa-dev mailing list ([email protected])

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)

Help/Unsubscribe/Update your Subscription:

This email sent to [email protected]

Programming list archiving by: Enterprise Git Hosting