Features

Native Mobile GPS Accuracy

A summary of publicly available knowledge regarding native GPS support on commonly used iOS and Android devices, brought to you by the Engineering Team at Snap Send Solve.

Introduction

An ideal Snap Send Solve report is quantified by a few elements: clear photos, adequate incident information and an accurate location to where the incident occurred. These properties are ideal and necessary in order to let authorities action reports as quickly as possible.

Occasionally we receive inquiries that relate to the accuracy of Location Services when the Snap Send Solve app automatically determines the user's location. This happens at one or both of the following instances in the reporting flow:

  • When taking the first photo of an incident report using the Take a Photo button in the Snap screen of the reporting flow; and/or,
  • When locating the user via the Map screen in the reporting flow

Snap Send Solve requires this location to be as accurate as possible to ensure that the report is sent to the correct authority, and that the receiving authority can accurately locate the incident to action the report in an efficient manner. If the location is inaccurate, the report could be sent to the incorrect authority, or the authority in question may not be able to locate the reported incident.

Technologies used

Snap Send Solve is a native mobile application. To ensure a consistent experience across the apps you use on your device of preference, most apps you use on a day-to-day basis will typically use the standard native components the operating system vendor supplies. This means that the user experience stays mostly consistent across all apps on the device; from taking a photo, to sharing content with friends, to more complex subjects like GPS and geolocation.

At Snap Send Solve we use native frameworks to provide data pertaining to the user's location.

In iOS we use Apple's MapKit[1] to render maps, and the Core Location framework[2] to provide accurate geolocation information when it's needed in the reporting interface.

These are identical technologies to those used in Apple's own Maps app. Address lookup and reverse geocoding (turning GPS coordinates into a nearby property address) are also done using the Core Location framework. Snap Send Solve themselves do not provide additional implementation around the services provided, which means updates provided by Apple are typically available automatically.

Our Android offering also provides similar implementation details around the same features as iOS. Android uses Google Maps to provide map information, and the Google Location Services API[3] for address lookup, reverse geocoding and determining a user's location for a report.

These frameworks use a combination of technologies to determine your location to a reasonable degree of accuracy. GPS, cellular data, Wi-Fi and Bluetooth are used to give a more refined location than GPS alone, and are amalgamated under the name Location Services.[4]

The combination of technologies allows Google and Apple to provide very accurate, real-time location information - commonly to within about 10 metres - to app developers like Snap Send Solve to provide the best possible experience without having to independently maintain those services ourselves. It allows us to give users Enterprise-level location services at no additional cost to the user.

Complications

Location accuracy can vary depending on availability of certain location services. An independent study conducted at the University of Georgia found that "the overall average horizontal position error of the iPhone 6 is in the 7-13m range"[5]. The study also showed that in cases where only GPS was available (no Wi-Fi, mobile data or Bluetooth available) during peak traffic the location read-out could be as far out as 90 metres.

Contributing factors to poor location accuracy is usually the result of a combination of factors, including (ordered by importance):

  • Inability to accurately triangulate the user's GPS position due to obstructions like tall buildings, being in a tunnel, etc.
  • Lack of, or poor mobile signal, which can typically be used as a secondary measure of location using distance from cellular towers in range of the device. Ideally, the user should be within signal range of multiple towers to triangulate a reliable location - this is quite commonly satisfied in suburban areas.
  • Having Wi-Fi disabled while geolocating can reduce location accuracy as well, as mobile devices can get geo-tagged location data from nearby Wi-Fi hotspots.[6]
  • Not having Bluetooth enabled means the phone can't reach bluetooth location beacons (iBeacon), which can sometimes help improve location accuracy - especially when geolocating in large indoor venues.

How Snap Send Solve helps users improve their location reporting

In cases where the Location Services position is less accurate than desired, Snap Send Solve allows users to improve their reporting location in a number of ways:

  1. Users can move the pin on the Report Location screen to change the reported location and make necessary adjustments;
  2. Users can perform "reverse lookup" by entering the nearest property address, and Location Services will adjust the location to that address;
  3. Newer versions of the Snap Send Solve app come with a button on the map screen which presents a satellite view. Using this, users can see where they're reporting from at a birds' eye view. When used in combination with point 1, users can more accurately check their reporting location before proceeding.

Geolocation using Location Services is typically sufficient for determining the place where the incident was reported. However if contributing factors (mentioned in the Complications section above) produce a location readout that's less accurate than desired we allow for manual intervention by the user.

Conclusion

Snap Send Solve uses native technologies provided by Google and Apple in the app for their respective devices to provide accurate, real-time location information to the user. This experience is intended to behave in a similar fashion to the native Maps offering on those devices.

Due to the amalgamation of technologies to provide location information to mobile devices, a number of environmental factors could lead to less accurate readings. Research suggests that, on average, location information is typically accurate to within 10 metres of the reported location.

Snap Send Solve provides some quality-of-life features to help users verify their location and make any corrections to them before sending the report to the designated authority. We also advise that users ensure that Location Services, WiFi (no connection to a hotspot is necessary) and Bluetooth are all enabled when available to ensure the most accurate reading possible.

References

[1] MapKit documentation - Apple Developer; https://developer.apple.com/documentation/mapkit

[2] CoreLocation documentation - Apple Developer; https://developer.apple.com/documentation/corelocation

[3] Location Services documentation - Google Developer; https://developer.android.com/training/location/request-updates

[4] "How does GPS work on my phone?" - J. Hildenbrand, AndroidCentral; August 2018; https://www.androidcentral.com/how-does-gps-work-my-phone

[5] "Smartphone GPS accuracy study in an urban environment" - Merry, Bettinger, University of Georgia; July 2019; https://doi.org/10.1371/journal.pone.0219890

[6] "About privacy and Location Services in iOS and iPadOS" - Apple Support; https://support.apple.com/en-au/HT203033