As an engineer, I tend to troubleshoot problem systematically and logically.
We have to agree that (in most cases) hardware problem cannot/should not be "fixed" by software and vice versa. So we have to determine if the GPS issue is a hardware problem or software.
Again, as an engineer, I don't want to speculate. But with limited access to IOS source codes, I can only make educated guess.
Many user reported this problem after major IOS upgrade (especially IOS 11). It *might* be a coincidence. But given the timing and the symptom, I'd say it's more related with IOS.
From my experience, the problem occurred immediately after IOS 11 upgrade. The problem went away immediately after a phone wipe ("reset all settings and contents"). So it looks very likely an IOS issue. Though I don't know how long the "fix" will work as many users reported that the problem reoccurred after the "fix".
Most of the "fixes" are to "toggle" or "reset" software options, including but not limited to:
- Settings > Privacy > Location Service > toggle on/off
- Settings > General > Reset > Reset xxx (xxx is anything on this screen)
- Settings > Cellular > Cellular Data Options > Enable LTE > turn off LTE
- Uninstall/Reinstall affected apps (Google Maps, Waze, etc.)
- Sign-out/Sign-in affected apps
Some of the users claimed to fix it by replacing the logic board flex cable. But also someone in (non-Apple) repair shop said he replaced the flex cable for many customer but didn't fix the problem.
At this point, I believe it's software issue and it's IOS related. The reason was timing. I purposely stayed on iOS 9.0.3 even when 11.2.5 was out because I know:
1) Once I upgraded, there's no way I can downgrade to the old version
2) If it ain't broken, don't fix it.
Unfortunately, my IT department won't support iOS 9 anymore so I was forced to upgrade to iOS 11. I use Google Maps everyday and everything works fine up to the point that I upgraded to iOS 11. And the difference is so obvious that it can't be ignored (my location in the app was a mile off).
I just wish that for troubleshooting purpose, Apple allowed the users being affected downgrade their iOS to 9.x. So we can prove if it's iOS issue or not.