GeoTracing:General:Whitepaper
From GeoWiki
| Table of contents |
About
In essence GeoTracing (http://www.geotracing.org) is about making traces ("sporen") and being traced ("gevolgd worden"). GeoTracing is both a concept and a software framework/toolkit through which specific applications can be realized. Below are more or less ordered thoughts...
Definitions
See the definition of "Tracing" in Websters Dictionary (http://dictionary.reference.com/search?q=tracing). At least two of the meanings follow the intentions of GeoTracing closely: (1) A path or trail that has been beaten out by the passage of animals or people. and (2) To follow the course or trail of (something moving) (like tracing a wounded deer; tracing missing persons). These two meanings are elaborated next.
Digital GeoStory Telling
GeoTracing enables telling your story about your movement through the landscape. This goes further than the common use of handheld GPSs, like recording trails with statistics on speed, altitude etc. By providing on-the-spot annotations with multimedia (pictures, video, audio, text) your trails become enriched with geotagged media (media tied the geographic location where they were captured).
In addition, application-specific parameter values can be defined and entered while tracing. Examples are road/asfalt-ratings, scenery ratings, bird/plant-counts, food quality etc. All these annotations provide additional layers and points of interest resulting in extra layers/views on a map. These "geo-stories" may be individual/personal or made by groups/communities.
Real-time Location Tracking
This feature allows tracing in the sense of following someone's movements in real-time. While showing movements on a map in a browser may be one purpose, having real-time location coordinates available within the server and in clients exposes numerous possibilities ranging from location-based services (for example indicating annotations left by other tracers) and location-based games.
Applications
Below possible application domains are listed. Links are provided where specific GeoTracing applications exist.
Sports
- skating www.geoskating.com
- biking www.geobiking.com
- sailing www.geosailing.com
- hiking
Also: covering events like races
Biology
- field investigations (e.g. bird-counting) www.geotracing.com/otter
- animal tracing
Gaming
- location-based games www.n8spel.nl
- advanced Frequency 1550 (http://freq1550.waag.org) (based on KeyWorx)
Arts
- GeoDrawing
- GeoComposing (music generation by moving through landscape and encountering geotagged objects)
Education
- historical city tours, tie history facts to locations
Tourism
- holiday tracing (friends and family follow your routes/media)
- location-based personal tours (handout mobile+gps at VVV)
MapMaking
- community mapping Sense of the City (http://www.senseofthecity.nl)
- skate maps GeoSkating (http://www.geoskating.com)
More
- nightlife hotspot mapping
- fleet tracking (tracking of vans etc)
- GeoDating
- friend tracing
Users
Three types of users are envisioned:
- developers: using the software to build specific applications
- "tracers": using the client (mobile) application to make tracks and annotations (media etc)
Tracers may be "high-tech", using a GPS coupled to a mobile phone and the server, or "middle-tech", using their own GPS, uploading tracks (e.g. GPX) and media through a web-form. Even "low-tech" users can be envisioned making tracks through the website or a mobile phone with a map where they explicitly indicate locations.
- audience: visiting Geo-* sites, optionally providing additional comments/annotations
Timeline
- provide initial GeoTracing framework (1 a 2 months)
- provide "Playground" GeoTracing application to test try out for "tracers" (1 month)
- port GeoSkating to new GeoTracing framework (1 month)
- port GeoSailing apps to new GeoTracing framework (1 month)
- additional apps
Product
The GeoTracing software is not a ready-to-use product but a framework/toolkit for quickly building specific Geo* applications (like GeoSkating). License will be Open Source LGPL.
Architecture
Client/server with most logic on the server. Server will build on KeyWorx (http://www.keyworx.org) and Pushlets (http://www.pushlets.com). This combination is ideal for a distributed Model View Controller framework. Mobile clients will use Java/J2ME. Browser client is currently foreseen to be based on AJAX (http://en.wikipedia.org/wiki/AJAX) and Google Maps with overlayed WMS servers. XML is used in communication protocols and track formats (GPX).
Parameterization
Each will have their own stats and parameters which should be easy to define. A parameter may be valid for a trace (until changed). Basically, each app can define (e.g. in an XML file its specific parameters) each with: traceOrPoint,name,vartype,label,range,other e.g.
- trace,"ar",int,"AsphaltRating",1-5
- point,"temp",float,"Temperature",(-100)-(100)
- trace,"sc",int,"SceneryRating",1-3
- trace,"colour",int,"Colour",0-255 (e.g. for GeoDrawing)
- point,"bt",string,"BirdSighting", (e.g.
Data Model
The following tables are used. Those marked with * are standard KeyWorx tables.
- Portal* - defines general portal properties
- Application* - defines application properties
- Account* - account info, name, password etc
- Right* - single CRUD right
- Role* - collection of Rights tied to Account
- Person* - defines user personal attributes (name, address, email etc).
- Medium* - media file (image/video/audio/text) meta information (name, description etc).
- Location - basically lon/lat/time/elevation used for geotagging anything
- Area - bounding box defined by two locations
- Track - collection of GPS samples and metadata
- Tag - for tagging anything above
- Comment - for commenting on any object
- future: Event (e.g. a tour like 11-steden or 24-uurs-race)
Since the data tables extend the KeyWorx data model generic/tagged relations between arbitrary tables are supported plus generic queries.
At the heart of GeoTracing is the "triangular" relation Person-Track-Medium.
Example Relations:
- Person to Medium, Location (last), Track, Event
- Medium to Location, Person, Track, Event
- Location to Person, Medium, Track (last location)
- Area to Event, Track (what area does track cover)
- Track to Person, Medium, Location, Area, Event, Item
- Event to Person, Medium, Area (what area does event cover, e.g. for maps), Track
Services
These are delivered by the server as XML protocol services (handlers) or REST-type services (e.g. servlets/JSPs). They may be accessed through HTTP/TCP from clients like J2ME phones or browsers (e.g. through AJAX).
Three types of services are provided as described next.
Session Services
Conducting a user session.
Portal Services
The standard KeyWorx portal services.
- register - create new Account/Person for Portal
- login - logon Account on specific Portal
- select-app - select Application within Portal
- logout - log off from Portal
Tracing Handler
This is the main GeoTracing service, supporting the following requests. The services are embedded in a KeyWorx Utopia request. A user session always operates on a current Track.
- create-track - create new track and make it the Person's current Track
- delete-track - deletes current or identified Track
- write-track - add (usually GPS) location sample (lon/lat/time/elevation) to Track
- suspend-track - ends current track segment
- resume-track - creates new Track segment
- add-medium - add Medium to Track and geotag with Location
- upload-medium - upload Medium (text/image/audio/video) and them add-medium
- delete-medium - delete Medium from Track and any geotagged Location
- export-track - return GTX (internal XML format) or GPX file for Track
- import-track - reverse of export-track (e.g. from Garmin GPX export)
Notification
The Pushlet-provided web-service offers real-time events for any of the above Track services that update Tracks. For example "track-write" will be received as "user-move".
- user-move : user moves from a to b
- user-hb : user sends heartbeat
- medium-add : user adds medium
- track-create
- track-delete
- track-suspend
- track-resume
Queries
A generic REST-type query service with results as XML is supported. Specific queries can be added on the fly for specific applications.
