Getting a solid GPS location in a city can be tough thanks to all the tall buildings. Skyscrapers reflect the GPS signal and can make your location data go crazy, but now, Google says it can correct for this and give users a much more accurate location. Google is working on an update that will leverage Google Maps’ 3D building data to calculate how buildings interfere with GPS, and it says Android’s new “3D mapping aided corrections module” can correct for GPS bounces.
A quick refresher on how GPS works: your position is triangulated by satellites in space. Your phone receives a signal from a GPS satellite, consisting of the position of the satellite and a very precise timestamp. The GPS time stamp tells the phone how long the signal took to reach you from space, and then you just multiply that by the speed of light to get your distance from the satellite. If you get a signal like this from multiple satellites, you can narrow down your position on Earth to a few feet.
All of these fancy space calculations work great, provided you have an open view of the sky. GPS triangulation assumes your signals are taking a straight shot from the satellite to your phone, but that’s not always the case. In a city, giant glass-and-metal skyscrapers can reflect the GPS signal on its way down from space. If your GPS signal includes a ricochet, your “time x speed-of-light” equation suddenly doesn’t equal your distance from the satellite, a leg of your triangulation triangle is longer than it should be, and your GPS coordinates aren’t accurate anymore. This can mean your location is suddenly on the wrong side of the street—or the wrong block.
Google has cooked up a scheme to make GPS work better in cities by correcting for the GPS bounces in the distance calculation. Google’s very “Google” solution for this is leveraging the massive amounts of 3D building data it has available in Google Maps. Google doesn’t go much into the details, but if the GPS is bouncing off of buildings, when you know where the buildings are, you can map out the bounce distance and correct for that. Google says that by using the new “3D aided mapping corrections,” “the [location] accuracy in cities improves spectacularly.” Android’s location system can now “reduce wrong-side-of-street occurrences by approximately 75%.” Google’s before-and-after picture in the gallery above is very illustrative.
The new 3D GPS-correction scheme is rolling out to Android as the “3D mapping aided corrections module,” which is part of the Google Play Services’ Fused Location Provider API (FLP). The FLP is the preferred way for apps to query location on Android. Rather than raw GPS coordinates (which are also available via an API call), FLP represents the systems’ best effort at location while also preserving the battery. Firing up GPS and making a bunch of outer space calculations is very battery intensive, so FLP tries to do that as little as possible.
For instance, nearly every Android phone contributes to Google’s worldwide database of Wi-Fi access point locations, so if you’re connected to a known access point, Android can tell where you are without needing GPS. FLP acts as a location provider for the entire system, so rather than five apps trying to fire up GPS and make their own calculations, FLP can determine your location once and share it with any app that has the background location permission.
Google says the features will work in “3,850 cities around the world”—basically everywhere Google has 3D building data. The 3D building calculations work with GPS, which is owned by the United States military, along with some of the major worldwide equivalents: Russia’s GLONASS, the EU’s Galileo, Japan’s QZSS, and even China’s BeiDou Navigation Satellite System, which is only really good for visitors to China since Google Play Services and the Fused Location Provider is not available on phones sold in China. For now, the Pixel 5 and Pixel 4a (5G) get first dibs on the improved mapping feature, and so far, it only works while walking. Google says the 3D mapping corrections will rollout to “the entire Android ecosystem (Android 8 or later) in early 2021.”