===== IceCondor: Continuous Location Tracking ===== See http://www.icecondor.com See [[icecondor:usecases]] \\ See [[icecondor:API]] \\ See [[icecondor:location]] \\ See [[icecondor:androidclient]] \\ See [[icecondor:news]] \\ See server [[icecondor:benchmarks]] \\ See [[icecondor:battery]] usage \\ See [[icecondor:URLs]] \\ See [[icecondor:pigeon]] \\ See [[icecondor:graphics]] \\ See [[icecondor: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 [[dotcom: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/ \\ one object at one location: /location/ == 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?