User Tools

Site Tools


geofencedsl

Differences

This shows you the differences between two versions of the page.


Previous revision
geofencedsl [2024/01/31 04:08] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +== 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
 +<code>
 +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"
 +</code>
 +  
 +Send an email on every fence crossing (blob attached to the user)
 +<code>
 + if event.verb == "IN" {
 +    email("don@don", "Fence entered!")
 + }
 +</code>
 +
 +Send an email if I'm at the ACE for 10 minutes (blob attached to the fence)
 +<code>
 + if (event.verb == "IN") {
 +    if ((new Date()) - fence.inside_trigger_time > 10.minutes) {
 +      email("brennan", "Nerdout at the ACE Hotel!")
 +    }
 + }
 +</code>