project:mobility:gsm-towers

This is an old revision of the document!


Commuters, hikers, off-piste skiers and others regularly lose connectivity and usually don't have a satellite phone at hand in case of an emergency. Some people are concerned about radio wave pollution, or simply wish to spend a weekend completely offline and away from the temptation of their mobile phone. This is a project idea that should appeal to both.

Mockup of a mobile app that shows the promixity of the user to the nearest radio communication tower. This allows a user without reception to know in which direction to walk to get a signal, or for people trying to go as offline as possible to find the nearest “hole” in reception.

Note: signal quality varies strongly depending on the height difference and topography of the land, distance alone is not enough to paint an accurate picture of signal reception. This type of app may not be relied upon in an emergency.

Cell phone tower locations in Switzerland are provided by BAKOM (department of communications) on their old Web Geo site - see metadata records, and are in the process of being migrated into a layer on the GeoAdmin API (target: end of 2012).

In the meantime, a subset of the data for the Canton of Geneva is available to us via the Geneva geoportal. Special thanks to Adrien Viera from SITG for his help with this.

On this screenshot from the SITG map browser, it can be seen that the further one goes from the center of town, the larger the average distance between radio transmitters.

We exported this data in Shapefile format for further processing. Using open source tool uDig GIS this (ArcGis) data format was opened and re-exported as KML. Due to issues with the export utility, we used Shape2osm, a Python script.

Finally, we imported the map data into a project powered by the Swiss GeoAdmin portal API. Note that their API does not load OSM data by default, but adding OpenLayer's OSM.js into the project enabled this.

These JavaScript APIs allow us to use OpenLayers to load the points and convert their coordinates, find the users' location using the HTML5 Geolocation API (see sample JSFiddle), and calculate distances, which is the essential function of this app.

Here is a screenshot of the app (the final app UI is not complete yet) running in WebKit, detecting the user's location and showing the cell phone towers in Geneva canton on a map:

Note: if the map functionality is to be conserved in future versions, the app UI should be recoded using GeoAdmin Mobile API.

  • project/mobility/gsm-towers.1333202235.txt.gz
  • Last modified: 2012/03/31 00:00
  • (external edit)