How can I evaluate the GPS signal strength? (iPhone)

I need a way of categorising the strength of the GPS signal. So far I have come across the horizontalAccuracy property of CLLocation (Class Reference).

To be more specific I need to create something like the following; the issue I’m having is filling in the if statements.

  • iOS augmented reality with compass and location
  • Routing between points with MapBox
  • Is it possible to use Core Location / GPS without any internet connection / disabled cellular network?
  • CLLocationManager and accuracy issues - any experiences?
  • How To Call a func within a Closure
  • How does the iPhone learn new WiFi locations in terms of using them for location estimates
  • if (someLocation.horizontalAccuracy ...)
    {
        // No Signal
    }
    else if (someLocation.horizontalAccuracy ...)
    {
        // Poor Signal
    }
    else if (someLocation.horizontalAccuracy ...)
    {
        // Average Signal
    }
    else if (someLocation.horizontalAccuracy ...)
    {
        // Good Signal
    }
    else
    {
        // Excellent Signal
    }
    

    Please can someone assist me in this?

    Solutions Collect From Internet About “How can I evaluate the GPS signal strength? (iPhone)”

    I’ve used figures like this in the past:

    if (someLocation.horizontalAccuracy < 0)
    {
        // No Signal
    }
    else if (someLocation.horizontalAccuracy > 163)
    {
        // Poor Signal
    }
    else if (someLocation.horizontalAccuracy > 48)
    {
        // Average Signal
    }
    else
    {
        // Full Signal
    }
    

    but to be honest, it didn’t really work very well for users. It would show as low accuracy, but when they looked at the maps app, it would have located them almost perfectly (albeit with a circle around them).

    Rather than trying to define a level of accuracy, and if your app is map based, could you do what Maps does and show the horizontal accuracy as an circular overlay? Then the user can decide for themselves if it’s accurate enough.