Location, Location, Location

It is an all too common occurrence for search and rescue teams to find that the location that a cell phone provider gave for a lost party calling 911 is miles off. Why can this happen and what does it have to do with my fascination with data-less smart phone usage?

Non-GPS Phones
Older phones don’t have GPS, so how does the cell phone provider know where they are? It comes down to triangulation. The provider knows where all of its towers are, it knows where the antennas on those towers are pointing, and it knows all the towers that are in contact with your phone. This works pretty well in an urban or suburban environment where there are lots of cell phone towers your phone may be in contact with.

But when you are in the mountains your phone may only be in contact with one tower so all they have is a big wedge of space where the one antenna that is in contact with your phone is pointing. They might get some indication of distance from the signal strength, but basically you are looking at a big pie shaped wedge of possible area.

GPS Phones
If your phone is equipped with GPS they could get your location from your phone. But cell phone GPS receivers use lots of power so they are usually off. And, at least on the Android phones I’ve had, they are slow acquiring GPS location when powered up unless they are given a pretty good guess for where you are at or have detailed information about the satellite locations. This is the “time to first fix”.

The GPS system in your phone can get some of the information it needs about the satellite locations via the cellular data service. If it is data is on. Otherwise it can take up to maybe 10 to 15 minutes to acquire that information from the GPS satellites.

Or the phone can get a guess on location by passing the details about cell towers and WiFi signals they detect to a network location provider like Apple or Google. But there is no WiFi around in the wilderness and there may be only one cell tower they are in contact with, so their guess about your location is probably worse than the cell provider’s. And getting that location guess to your phone requires a data connection.

Even if you have enough coverage to call 911 you may not be able to make a data connection. For example, rural mountainous areas often only have 2G service. Or your provider has no coverage in the area so the 911 call is going out through a different provider for which you have no data capability.

So your phone can take minutes to acquire an accurate location and the 911 call is over, or at least your location is sampled and reported to the emergency responders, before your phone really knows where it is.

The end result is that a cell phone position report can have a margin of error of several miles. But the report the SAR team gets is only a single point with no information about the margin of error.

Data-less Navigation
What does the above have to do with me? Basically my phone has the same or worse conditions when I fire up OsmAnd to get a map of where I am at or to direct me to where I want to go. If I have data turned off, then I have no access to an external server with a world wide database of cell towers and WiFi hotspots.

My Samsung Galaxy Nexus seems to have an issue common to all Samsung Android phones: It only reports the one cell phone tower it might make a call over. Android has an API where all the towers seen by the phone can be determined but Samsung phones return an empty list when asked for adjacent or additional towers seen by the phone. So no triangulation is possible.

Finally, the cell tower database in my phone, gathered by many phones simply reporting towers seen does not say which antennas on the tower point in which direction. So no pie shaped wedge of possible locations, we are working with the whole circle.

I am guessing that there are cell towers about every kilometer in my suburban area as I’ve found that once the cell towers the area near my home were entered into OpenCellID and loaded into my phone that the first guess of location was within 500 meters or so and GPS acquisition is pretty fast.

But in the mountains that first guess can be many kilometers off and so my GPS acquisition is still painfully slow.

I don’t know what can be done to fix the rural and mountain issue of time to first lock on the GPS. But I can make things better for the suburban and urban areas I visit by gathering more cell tower location information.

Tower Location Surveying
In my post about Android without Google I mentioned that I was using the Tower Collector app. While it seemed to work from my user point of view, it apparently was sending a pretty high percentage of points that were “suspect” to the OpenCellID server. Enough that the administrator contacted me to determine which app I was using so they could contact the author to get it fixed. So I’ve switched to the app put out by the OpenCellID people themselves: inVue OpenCellID. It also has a clean and easy to use interface.

However they have sown some seeds of doubt about their practices with another application: To make navigation work you need to specify a destination and a common way to do that is to use a street address. In the United States address data is mostly missing in OpenStreetMap, so I’ve been collecting address data. One way to easily collect street address information is with the Keypad Mapper app. That app is created by the OpenCellID project and it collects cell tower data without your control and without informing you that it is doing so. That is a pretty shabby way of doing things.

Since my current benefit, being able to download a cell tower database in CSV format and then munging into the Sqlite3 database needed by the microG network location service, outweighs my annoyance I have not given up on OpenCellID yet.