User Tools

Site Tools


IceCondor: Continuous Location Tracking


See usecases
See location
See androidclient
See news
See server benchmarks
See battery usage
See URLs
See pigeon
See graphics
See roadmap


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.

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

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.


language possibilities:

  • erlang
  • ruby
  • java


  • postgresql + postGIS extension
  • couchdb

access protocols:

  • HTML
  • XMPP
  • OAUTH / OpenID

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?

icecondor.txt · Last modified: 2024/01/31 04:08 by