GPS drifting has nothing to do with cars oversteering around corners intentionally. If that’s what you’re looking for, I recommend watching The Fast and Furious: Tokyo Drift movie. It’s one of the few movies in that franchise that has anything to do with street racing.
GPS drift is a term that explains the occurrence of inaccurate location data because the GPS signal isn't able to get the precise location of the receiver.
Location accuracy is hugely important to the performance of a mobile app that is location-aware, and it’s a common problem developers face on this side of mobile technology. We’re talking location data that’s miles off the true location of a device -- not very handy.
In this article, you will learn about what GPS drifting is, how it affects location accuracy, and what solutions are around to fix it.
What is GPS Drifting?
GPS drifting refers to the phenomenon where the reported GPS position of a device, like a smartphone, varies over time, even when stationary. In simple terms, it's when the GPS location data isn't reflective of your actual location.
There are a few things that cause it to happen:
These are changes to the Earth’s atmosphere, like ionospheric and tropospheric delays. Wondering what those are again?
GPS signals from satellites pass through different layers of the Earth's atmosphere. Charged particles in the ionosphere (a layer in the Earth's upper atmosphere) can slow down signals as they pass through because of their interaction.
In the troposphere, the lowest layer of the atmosphere, you’ll have delays caused by weather. This can be air density, temperature, and humidity. Individually and together, both forms of delays affect the speed at which GPS signals travel, leading to inaccuracies.
Maybe a given, but obstacles like high-rise buildings, trees, and bridges can block or deflect GPS signals causing multipath interference (new term for me, and maybe for you too).
The relative positions of GPS satellites orbiting around the Earth can impact the signal strength and accuracy. Poor satellite geometry can result in drifting. Yeah, it turns out learning geometry in school is as important as your parents said it would be.
A poor quality receiver results in low quality location accuracy. Receivers with better antennas and processing capabilities tend to provide reliable results.
This reason coincides with signal interference. In densely populated areas, GPS signals bounce off buildings and other structures, causing signal reflections and inaccuracies.
A sudden change in orientation, speed and altitude has an effect on GPS accuracy. Like abruptly turning while driving can momentarily disrupt the positioning. Come to think of it, maybe there is a layered meaning to The Fast and Furious: Tokyo Drift – if you know what I mean? No, better – if you catch my drift?
The Role of GPS in Mobile App Development
Before we get into the challenges and impact of GPS drifting, let’s briefly go over why GPS is significant to various location-based mobile apps.
GPS is fundamental for navigation apps like Waze and Apple Maps. They rely on GPS to give users real-time directions, traffic updates and ETAs. Mapping apps also need GPS data to provide detailed maps, geolocations, and POIs (point of interest) data.
Ride-sharing/ride-hailing services heavily depend on GPS to match riders with drivers and calculate fares based on distance traveled. They also need it for their pick up and drop-off locations because precision location accuracy enhances the user experience.
Fitness and health tracking apps need GPS technology to allow users to monitor distance, speed, and route information for their sporting activities like running, cycling, and hiking.
You’ve also got location-based games, which from the name itself I think you can deduce that GPS technology is central to the experience. Location is the interactional feature of it.
Lastly, travel and tourism apps that provide users with location-specific information, such as nearby hotels and museums, rely on GPS too.
From each example you can boil down the list of reasons why GPS is crucial for their services as such:
- Precise location information
- Proximity alerts and notifications
- Geofencing: You need GPS to create virtual boundaries so that users can receive location-based information when they enter or exit a predefined area.
- Local recommendations
- Navigation and routing
- Real-time tracking
- Location analytics: Businesses can gather GPS data to analyze and gain insight on user behavior, foot traffic patterns, and POIs. This helps optimize marketing strategies and improve customer experiences.
Challenges with GPS Drifting
Where to start? When GPS drifting occurs, the reported location of a device may not match its actual position, giving incorrect and misleading information to the user.
For example, inaccurate location data can greatly hamper the performance of a navigation and mapping app. Wrong turn-by-turn directions can cause confusion, delays, or worse, accidents.
Bad GPS experiences may lead to loss in trust by users in an app's ability to provide consistently accurate location data. That leads to decreased user engagement and retention.
And if it isn’t bad for business enough, when a device is continually trying to correct its GPS position due to drifting, it leads to an increase in battery drain.
So, not only does GPS drifting disrupt the user experience, give incorrect information, fuel chaos and confusion, but it’ll also consume your users battery life during the process. Big yikes.
Strategies for Mitigating GPS Drifting
There are a couple of strategies that developers use to help mitigate GPS drifting.
Location SDK & Sensor Fusion
Location SDKs are essential for mobile app developers, by providing access to location-based services and accurate GPS data integration.
SDKs use a sensor fusion that combines data from multiple sensors like the GPS receivers, accelerometers, gyroscopes, and magnetometers, to estimate the device’s position and orientation accurately.
That means the developer isn’t solely reliant on the GPS itself to deliver accurate location data for their app. Through these multiple sensors, they can smooth out GPS data and correct for drifting, especially during periods of signal loss or interference.
SDKs can also be efficient battery power managers (shameless promotion inbound), like ours. We designed our location SDK to optimize power consumption. Developers can help conserve battery life and maintain accurate location data by controlling when and how often they activate the GPS module using our adaptable tracking feature.
Kalman filtering is an advanced mathematical technique used to estimate the true state of a system based on noisy or uncertain measurements. They predict the user's position based on previous measurements and sensor data while incorporating new GPS data. Kalman filters help limit GPS drift by providing a stable and accurate estimation of the user’s location. That way you’ll definitely notice drifting if the latest GPS data doesn’t match with the estimated one.
Differential GPS (DGPS)
Depending who you ask, this technique has a different name, but we’ll stick to what we know here. DGPS is about using a reference station with a known fixed location to compare its measured GPS position with the position calculated by the mobile device. That difference is used to correct for errors, like drifting, in real-time. Maritime navigation apps and precision agriculture commonly use DGPS.
Best Practices for Developers
Due to the various factors that cause GPS drifting, it’s inevitable that developers will encounter it. The best practical advice for mobile app developers on how to minimize GPS drifting, would be to effectively use a location SDK and the other parameters available to you if possible.
With an SDK it’s all about optimizing the app code. That implies doing various things within the code to smooth out the location accuracy and limit the drifting.
Minimize location Requests
Avoid continuously requesting location updates, especially when it’s not necessary for the app to provide real-time data. Only activate the location requests when necessary, this also conserves battery life.
Use Background Location Updates Wisely
Be sensible about the frequency of background location updates. Periodic updates are far more efficient when the app is running in the background, and that too saves battery.
Use Foreground Location Updates Wisely
The same-same, but different, but still the same. Your location update strategies should differ between the foreground and background. That means, in the foreground, your location update requests are more frequent than in the background. With that said, even in the foreground state it’s good to strategies this frequency. For instance, should the user have the app open but remain stationary, a highly frequent location request is unnecessary until they start moving. With our SDK you also have the ability to customize the frequency based on distance and time intervals depending on the mode of transport, the speed, and the distance the user needs to cover. All of this again lends to helping the GPS not strain and drift, and to optimize battery life.
Limiting the effects of GPS drifting is just error handling. When the GPS is weak or unavailable it’s about making sure you can leverage the other strategies like Kalman Filtering, sensor fusions, and even DGPS to circumvent the error and provide the true location requests for the user.
GPS drifting, while a common challenge, can be effectively managed through a combination of strategies and the judicious use of a location SDKs and the other solutions available to developers.
If you want to learn more about GPS drifting and how Roam's products circumvent it, feel free to contact us.