== 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!")
}
}