User Tools

Site Tools


geofencedsl
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" : <The specific fence that caused the event>
           "date" : <trigger 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!")
    }
 }
geofencedsl.txt · Last modified: 2016/06/25 11:25 (external edit)