== GeoFence DSL == Allow users to write javascript to do what they want to with geofence events. Attach a code blob to a fence, to automatically be run on any event for that fence. Attach a blob to the user account to run on any fence event. Variables event = { "fence" : "date" : "verb" : "IN" | "OUT" } fences[] - access to each of the user defined geofences fence = { "name" : "Bob's GeoFence", "geometry": { "type": "Polygon", "coordinates": [ [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ] ] } /* from http://locationcommons.org/index.php?title=GeoFence */ inside_fences[] - list of fences currently "inside" Send an email on every fence crossing (blob attached to the user) if event.verb == "IN" { email("don@don", "Fence entered!") } Send an email if I'm at the ACE for 10 minutes (blob attached to the fence) if (event.verb == "IN") { if ((new Date()) - fence.inside_trigger_time > 10.minutes) { email("brennan", "Nerdout at the ACE Hotel!") } }