* 2022: https://news.ycombinator.com/item?id=29981188
* 2023: https://news.ycombinator.com/item?id=36180316
* Others: https://news.ycombinator.com/from?site=ciechanow.ski
Standford's "An Introduction to Satellite Navigation" course is also instructive (recorded 2014):
* https://www.youtube.com/playlist?list=PLGvhNIiu1ubyEOJga50LJ...
Most of the power consumption is for the radio reception that has to detect and decode signals from multiple constantly shifting sources, dealing with their very low signal-to-noise ratios and other challenges like multipath distortion due to atmosphere and surface reflections.
It's pretty remarkable how much miniaturization has improved the efficiency of these radios. E.g. going from the early "portable" GPS units that essentially had a lead-acid car or motorcycle battery to today's wearables that run on a tiny power budget while supporting a wider range of satellite constellations and radio bands.
* https://gssc.esa.int/navipedia/index.php/GPS_Navigation_Mess...
* https://www.e-education.psu.edu/geog862/node/1737
* https://gssc.esa.int/navipedia/index.php/GPS_and_Galileo_Sat...
Now about the battery draining - the more satellites your phone GPS captures the higher the precision. You need at least 4 satellites to trilaterate aka get precise lat, long. Listening to the signal from the GPS and then trilaterating is an expensive operation- why? because the satellite signal is very very weak and your phone has to run quite a lot of operations (how far the satellites are, then direction) to get the signal from the noise that's hitting your phone constantly. This is loosely the reason for why it drains the battery (even more so during cold starts).
I started to build a gps tracker for my cat which wouldn't require a monthly subscription- after burning the first micro-controller I gave up and decided to leash train my cat. Now my cat is leash trained.
So what you measure is that one satellite is ### meters further away from another. Not absolute distance to each satellite. It means you need to connect to one more satellite to remove that extra degree of freedom. If your phone had an atomic clock you could get your absolute position in 3D only listening to three GPS satellites, but because of local clock skew you need a signal from a fourth satellite.
I ask because I do a lot of backcountry hiking, camping, and foraging and rely on true GPS-only navigation. My most recent two phones (iphone and pixel) have noticeably worse GPS performance than previous phones, and I even changed OS ecosystems mostly hoping for better GPS, but it didn't help. Maybe I've had bad luck, but two noticeably bad phones in a row seems like it may be a pattern.
And is there any way to find phones with very good GPS performance?
Try disabling battery saving measures as much as possible and see if it helps.
I'm working on a presentation now to explain how GPS works to second graders. If they understand it, I'll take some photos and do a write-up.
GPS is not constrained to earths surface (or the oblate spheroid approximating it), luckily.
With one satellite you get a sphere in 3D space, but if you are on a surface (like that of the Earth), that gets translated into circle.
If you are in a plane in the sky (3D space), then you get a spherical 'location fix'.
Watches that use GPS for altitude are terribly inaccurate
It is interesting to run the opensource GPSTEST app on a smartphone and watch the MSL "settle" over time but each sat seems to disagree
* https://github.com/barbeau/gpstest
btw watches are now getting THREE multi-band L1+L5 GPS chipsets, should help things
quad-band GNSS coming soon too!
Horizontal position has the benefit of having satellites at almost all azimuths. But the vertical position estimate only gets satellites from at most half of possible elevations (above the horizon).
See "Vertical Dilution of Precision":