Below is a summary of the technical setup.
GPS data is sampled using a standard Bluetooth GPS module. This module communicates with a mobile phone, a Nokia 6600. The mobile phone runs a Java (J2ME) program that reads GPS data from the GPS module and sends it through the mobile data network (GPRS) to the geoskating.com server. The skater can enter the road quality as a number (1-5) on the phone keypad. The current quality is always added to each GPS sample sent to the server.
On the server the (enriched) GPS samples are received and assembled. A map-drawing program on the server reads the route files and generates maps that can be viewed (and later printed) through www.geoskating.com.
During skating the skater can make various kinds of media, i.e. pictures, movies, sounds, texts through the mobile phone or for example using a regular digital camera (I use a Canon Digital Ixus). Media items can be sent to the server e.g. by email (or later directly) from the phone, or by upload from a browser. On the server these media items are coupled to the GPS locations where they were captured. This is realized by correlating the item's timestamp to GPS timestamps. For example, picture files from a digital camera have an embedded timestamp (e.g. JPEG EXIF). In other cases the origin date from e.g. an email is used.
The media items form a multimedial annotation layer over the route maps.
Live Position Tracking
In addition, live position data of skaters is pushed to the browser such that they can be seen moving in near real-time over the map.
The Open Source KeyWorx platform is used as the main application framework for the (Tomcat) server, providing portal functionality, (multimedia) content management and many other services. KeyWorx is under development at Waag Society.
During the project and inspired by the many emails received, I have realized that the generic concept behind GeoSkating has much wider applicability in other domains like sports (hiking, cycling, climbing etc), travelling, gaming and even partying. This technology can be used for any kind of personal geographic mapping of locations, annotations and media. There are also hooks for location-based feedback to the phone, more popularly known as LBS (Location-Based Services).