So, presumably if I bought one of their phones and turned it on, I would wait ten minutes to get a GPS fix instead of it using a almanac and working out the lat and long of three cell towers at certain signal strength?
Does anyone know if it's possible to get at this info from user side ? Some API access? sounds fun
I'm curious, if I have no internet access and gps turned off on my phone (Samsung Galaxy S7) is there still hidden shit which is tracking my location? .. Like, is GPS not really turned off for example?
Sometimes GPS isn't working. What if you're in an underground parking lot?
I do agree though, it seems like a bit of a fail if the OS knows that it has a good fix on GPS, you shouldn't even need a "current location". Just tap the location you want and go. If you want to do a route from A to B, then do the swipe. But I expect the difficulty there is that getting a GPS fix takes time, and mobile apps in 2012 can't do it in the background.
On the other hand, those "rough coordinates" you get from a WiFi scan may be hundreds of miles away from your actual location. WiFi networks move.
For example, I have a 4G hotspot with a proper antenna for areas with poor reception. While traveling to a campground the location remains accurate so long as I'm using Maps for navigation (with GPS). Shortly after I arrive and activate my hotspot, however, my phone starts reporting that I'm at the last place I stayed. And it generally keeps doing that for several days (until I'm about ready to leave) before their database finally updates. If I force a GPS fix—which takes longer due to the bad initial guess—it shows the right place for a while and then reverts once GPS is no longer active. What I want is for it to ignore all the mobile hotspots around me[0] and just use GPS and fixed sources such as cell towers. An out-of-date GPS fix would be better than its guess based on WiFi scanning, but Maps no longer supports navigation without what they laughably refer to as "Google Location Accuracy" enabled. There isn't even an option to include the more reliable sources such as cellular service and local sensors (inertial navigation) while excluding WiFi.
[0] Yes, I know I could rename the hotspot to use some ugly suffix or other ("_no_map", I think?) to avoid it being recorded in the database. That doesn't help with all the other mobile hotspots I don't control.
I suspect that my G1 has a bad GPS module because I find that when I have it disabled, I can get a somewhat accurate measurement of my current location via cell towers or whatever, however if I have it enabled, it can't figure out where I am at all (at least not within the amount of time that I am willing to wait for it-- 1 minute or so). So I leave it disabled pretty much all the time in an attempt to keep the battery life long.
If it were up to me (and I must admit I have not looked at how the location API works), I would have location services return an imprecise value quickly (via cell towers or wifi or whatever) and refine it as the GPS came online. Sensor fusion is still an active research topic, but there are at least some simple heuristics that could be used if it was inefficient to make a full Bayesian inference.
You could use some smart heuristics to make corrections without a gps lock, like resetting the location to "home" if it is near enough and sits motionless over night, or making an adjustment whenever the location drifts too far from the known locations of currently connected cell towers.
Also with android phones: Identifying a known nearby wifi network can allow a faster estimate of the phone's location than waiting for a GPS fix.
In a weird way, one privacy concern helps mask another: People spend time worrying that nefarious phone-software can locate itself even with GPS disabled... rather than worrying about nefarious server-software using a vast fleet of strangers' phones to locate and surveil their wireless equipment.
That's in fact how your GPS works most of the time. They triangulate it based on a scan of SSIDs assuming access points are usually fixed. Both Apple and Google use this method.
reply