I hereby invoke the LazyWeb:
I propose a service that allows both mobile phone and traditional application developers to determine the approximate location of a phone based on the locations of cell towers.
- Image Location Embedding
- Cameraphones would be able to record where a picture was taken. Photo albums or moblogs could then be generated based on location. Examples:
- Non-Commercial Location Based Services
- Most location based services require large capital investments in order to get going. A free database would enable hackers to implement cool services on the cheap. Potential applications:
- Cell tower tracking
- Allow people to view where cell towers are. Useful for estimating signal strength, tracking growth or just for the curious.
Continue reading for a complete description of how this would work.
While most phones do not carry chips to receive accurate GPS data from satellites, their location can be estimated from the tower ID that they are currently talking to, if the location of that tower is known. CellTracker is an example of an application that tracks cell towers and performs actions based on the phone’s location.
If a lookup database could be made to turn cell tower IDs into approximate lat/lon then application developers could create free or cheap location based applications that did lookups over the Internet. A service would be set up to perform these lookups and accept location information on cell towers.
The database could be created by culling public database, but real-space data gathering would be essential to fill in the gaps. To gather this data, an application that records cell tower IDs and the current location of the phone would be distributed for free. This application would be able to submit the data back into the database. Most likely, it would record where cell “handoffs” occur, which would be the edge of a tower’s network. These handoffs would form a polygon and the tower could be estimated to be in the center. More information about this is below.
As for the database itself, it would have to accept information submissions as well as provide cell tower ID to lat/lon lookups. This could be done via a web service to enable applications like Gallery to get location information on tagged images. An interface suitable to the low bandwidth and memory capabilities of mobile phones.
Licensing the data is an important concern. The technical first adopters who are likely to drive this project would be all to familiar with what happened when Gracenote closed the CDDB database and are not likely to submit data unless they know it will remain open.
A copy of the database should be made available to developers who want to run their own service. This is likely to encourage more participation in the project by assuring developers that if the project’s database becomes unavailable they will be able to set up replacements for their users.
Also, commercial databases like Tower Maps are available for thousands of dollars and partnerships with mobile providers for location services exist. Unfortunately, the small or open source developers that are most innovative are also unlikely to have access to these resources.
Privacy and Security
The applications that use this data will have to decide on how to use location data on their customers, although if possible a specification like P3P should be included to tell end users how their information will be used. It will be important to differentiate applications from the project database so that if one application breaches users’ privacy they do not lose faith in the project.
Because the users will be anonymous, the security of submission comes into question. Rather than track users that submit false information, false information would have to be determined on its own merits. If location data for a cell tower is submitted that is obviously outside of the known data, it should be treated as false until enough corroborating data is submitted to indicate that the existing data was false. This allows the system to remain intact without requiring the identities of users.
This would be an application that would run on cellphones, either as a J2ME or native application. It would record cell tower IDs and then log the current location when a handoff occurs between two cell towers. The location would be determined by a traditional GPS unit either embedded in the phone, added on to the phone like this GPS shell or a Bluetooth GPS receiver.
It could also potentially guide data gatherers in the direction of unrecorded data. This would make it easy for volunteers to log an entire city in a single day, without worry about missing towers.
This application would embed lat/lon information in the EXIF headers of JPEGs. This weblog entry provides a good overview of embedding GPS locations in JPEGs. A user would be able to select an image on their camera phone and embed the current location. It could potentially act as a replacement camera application and embed the location when the photo was taken.