IceCondor: Continuous Location Tracking
See usecases
See API
See location
See androidclient
See news
See server benchmarks
See battery usage
See URLs
See pigeon
See graphics
See roadmap
terms
A point location is defined by lat/long/altitude. An area location or polygon is defined by 3 or more point locations. A track point is a point location or area location plus a time. A 3d polygon?
accuracy estimate
The openmoko app, tangogps, introduced me to a new GPS concept - Horizontal/Vertial Dilution of Precision. the V-DOP/H-DOP value will help generate an an accuracy estimate. A high VDOP means a low accuracy so take a larger area and low confidence as the object's location. The location record will store a range in meters, centered on the given lat/long that gives a confidence to the location.
search
build a set of filters from the following. use a filter language/DSL?
- geo - location, radius
- geo - polygon (set of points)
- object type - person, business, event
- record creation date
- user id
publish/subscribe
I want to be notified when the results of a search are positive, or have result count of X. examples:
- user A moves into/outof polygon B (in 3D space, could be in an elevator etc)
- a filter set for polygon A results in X or more objects (eg. favorite bar has 4 or more friends)
A list of notification triggers would be managed.
clients
- unix command line
- unix daemon
- android app (see androidsociallocationnetwork)
- web site
technology
language possibilities:
- erlang
- ruby
- java
database:
- postgresql + postGIS extension
- couchdb
access protocols:
- HTML
- XMPP
- OAUTH / OpenID
URLs
object being tracked: /object/<name>
one object at one location: /location/<guid>
possible directions
Distributed. Each IceCondor installation (node) uses a distributed hash table to store location records. Nodes can be added to the network easily and once added, its data is searchable by any other node. Using a DHT for storage would loose the benefits of postGIS for lat/long queries. Hadoop?