Posted by: balabanovic | May 8, 2008

Where’s this phone?

How do you build a location-aware mobile internet site or app?  There are at least 3 sources of data, but none of them easy.

When thinking about travel-related apps for phones, knowing where you are is generally really useful.  Some phones have GPS included.  If you write an app of some kind you can persuade people to install, that’s great, you’ll then know where the phone is (apart from the time it takes to acquire the initial position, and the fact that it eats up your batteries fast!).  But if you’re working on the mobile web, you don’t have access to a phone’s GPS.  And plenty of phones don’t have GPS anyway.  So what can you do?

One option is to ask the phone operator to give you the position of the phone - they know this because they know which cell towers can see it.  It’s a pain to have to do a separate deal with every phone operator, but there are various aggregators in the UK to make this less painful - for example Mobile Commerce, MX Telecom.  There are still downsides - it is expensive (nearly 10p a lookup), it only works for people who aren’t roaming.  And in most countries apparently there are no aggregators.

Another option is to use one of the open databases of cell tower IDs and locations.  We haven’t really investigated this in depth yet - there are clearly several of them at different stages of development - for example OpenCellID, ZoneTag, CellDB, CellSpotting, GSM Location What’s the coverage like?  Could they be combined?  Presumably they work whether or not you’re roaming?  And in the USA cell tower locations are supposed to be in the public domain, although without the IDs the operators assign this isn’t the complete solution (see the Navigating the Surface blog for some ideas around how to fill in that last gap).  Of course knowing which cell towers the phone can see can’t be done from a mobile web page (can it?), but if you’re willing to create a downloadable app then this is a solution.

Finally, if your phone has wifi you can use a database of locations of wifi hotspots to locate it - this is commercially available from Skyhook and can be tested for free, or there are open versions such as WiGLE.

Of course you can always just ask a user to type in their location - a city and street name for example.  But that would be cheating :-).  Although if gateways such as FireEagle take off then there are many ways for people to say where they are, via different web apps they use as well as phones.

iPhone Google MapsThere’s been speculation about how Google Maps on phones determines location (for instance from the Mobile Observations blog and the Mobile Phone Development blog).  We know they can use GPS and wifi location where available, but they also use cell ID positioning.  I’d assume they have their own database of cell tower IDs and locations, as this seems a very Google-like thing to amass.  If they’re driving around anyway capturing photos for Street View, wouldn’t it also be easy to gather up cell tower and wifi hotspot locations?  Can the cell tower IDs be detected from the air - while getting detailed imagery for maps?  Of course another option is to rely on the users who have GPS phones, and have Google maps surreptitously log cell tower ID sightings - sounds a bit evil, but that is exactly what is claimed in an interview with Google’s product manager for Maps for Mobile.  At the scale Google runs, it must be more efficient to have your own worldwide database than to deal with every phone operator individually.  The only way we’ve seen so far to get at this data is via the iPhone SDK Core Location feature.  But if the data is being passed backwards and forwards from Google Maps on handsets to a server, it is only a matter of time before it is hacked…

If anyone has any further light to shed on this topic, feel free to chime in - we’d love to hear if there are better solutions!

Responses

[...] Where’s this phone? « travel innovation If anyone has any further light to shed on this topic, feel free to chime in - we’d love to hear [...]

Sadly, those are your only real options. Unless the phone or the service provider inserted an HTTP header with latitude and longitude, you’re reliant on the phone (hence an app) or an aggregator.

The main reason for this is privacy. An app will generally ask permission to locate me and I’m quite likely to accept if it’s part of the functionality that I need.
However, I don’t want to broadcast my location to every single website that I casually browse.

So, I have to give my permission to be located to my operator who in turn needs to give it to you (via an agrregator). It similar to not wanting to give your phone number to every site you visit.

So, we come down to a tricky balance of privacy and profitability. I suspect future browsers will allow applets or flash to run which would be able to determine location, but until then, I can’t see any way to short cut the system.

Terence - you are right about the privacy issues. This is really where applications like Fire Eagle really come into their own - allowing the end user to control how much or what granularity of info is released and to whom.

Location data is one important component to what we title internally as ‘Plutonium Data’ - (thank to Martin eddes who coined the term). Just because data is potentially dangerous (as is Plutonium) it does not mean that it should not be used for all kinds of productive and beneficial uses! It just means that we have to be very careful about how we handle it (and take protective measures).

Navizon is another cell id database and application for a number of devices

celltrack is a program for Symbian phones (and there was a program with the same name for Windows Mobile - it grabbed data out of the memory of the CPU running the radio stack!). As well as getting a list of nearby cell towers that can also get the Timing Advance. This tells you how near you are to each tower so you can approximately triangulate yourself.

What about geo-locating the IP address? though there are probably few exit points from the mobile operators networks.

I don’t think there is a good answer to this query at the moment.

Maybe as mobile browsers evolve (firefox, opera mobile) they will offer the facility to send nearby cell location in the HTTP headers to a set of trusted sites.

First, thanks for the mention of http://www.opencellid.org . The coverage is still very incomplete, but we put a lot of hope on latest GPS enabled phone from SonyEricsson, which will contains both access to GPS and CellID.
We create the database by getting information from the users which have both GPS info and CellID, which is now only avaialble with an external bluetooth GPS.
But I am quite sure that Google has done the same with his native version, at least on some french operators, thanks to a very simple experience:
- try to access location on let’s say a SonyEricsson phone on an unkown cell -> can not get your position
- now, use GoogleMap on the same network operator and at the same place with an N95, and locate yourself
- go back to your SonyEricsson -> You will be located….

ya i like this awesome information

Leave a response

Your response:

Categories