Finding a solid GPS location in a city can be difficult due to all the tall buildings. Skyscrapers bounce off the GPS signal and can make your location data 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 use 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 satellite’s position and a highly accurate time stamp. The GPS timestamp tells the phone how long it took for the signal 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 receive such a signal from several satellites, you can reduce your position on earth to a few meters.
All of these fancy space calculations work great, provided you have an open view of the sky. GPS triangulation assumes that your signals go directly from the satellite to your phone, but that’s not always the case. In a city, gigantic glass and metal skyscrapers can reflect the GPS signal on its way down from space. If your GPS signal contains a ricochet, your “time x speed of light” equation suddenly doesn’t equal your distance from the satellite, one leg of your triangular triangle is longer than it should be, and your GPS coordinates are no longer accurate. This could mean that your location is suddenly on the wrong side of the street, or on the wrong block.
Google has come up with a scheme to make GPS work better in cities by correcting for the GPS bounces in the distance calculation. Google’s “Google” solution for this takes advantage of the vast amounts of 3D construction data available in Google Maps. Google doesn’t go into much detail, but if the GPS bounces off buildings, if you know where the buildings are, you can map the bounce distance and correct for it. Google says that by using the new “3D-assisted map corrections”, “the [location] accuracy in cities improves dramatically.” Android’s location system can now “reduce the number of times you are on the wrong side of the street by about 75%.”
The new 3D GPS correction scheme is rolling out to Android as the “3D mapping aided corrections module”, which is part of Google Play Services’ Fused Location Provider API (FLP). The FLP is the preferred way for apps to request location on Android. Instead of raw GPS coordinates (which are also available through an API call), FLP represents the system’s best effort on site, while also saving battery power. Starting up GPS and doing a bunch of space calculations is very battery intensive, so FLP tries to do that as little as possible.
For example, almost every Android phone contributes to Google’s global database of Wi-Fi access point locations, so if you’re connected to a known access point, Android can tell you where you are without needing GPS. FLP acts as a system-wide location provider, so instead of five apps trying to activate GPS and making their own calculations, FLP can determine your location once and share it with any app that has background location permissions.
Google says the features will work in “3,850 cities around the world,” basically anywhere Google has 3D building data. The 3D construction calculations work with GPS, which is owned by the US military, along with some of the main global equivalents: Russia’s GLONASS, EU Galilee, 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 are not available on phones sold in China. For now, the Pixel 5 and Pixel 4a (5G) get the first marks from the improved map feature, and so far it only works while walking. Google says the 3D map fixes will roll out to “the entire Android ecosystem (Android 8 or later) in early 2021.