var DoubleDoubleWrapper = require("double-double-wrapper");
var doubleDouble = new DoubleDoubleWrapper({
cache: undefined
});
doubleDouble.getGeofence('geofenceName', verticesArrayofArrays, granularityInteger, function(err, geofence) {
geofence.inside([0, 0]);
});
doubleDouble.getGeofence('geofenceName', function(err, geofence) {
console.log('after being defined, only need to reference by id');
});
doubleDouble.geoGeofence('geofence2', verticesArrayofArrays, function(err, geofence) {
console.log('the granularity is not needed, but is useful for tuning the fast lookup table');
});
doubleDouble.getGeofenceGroup('groupOfGeofences', {
regionA: {
whiteoutGfs: [{
vertices: regionToInclude,
granularity: granularity1
}, {
vertices: anotherRegionToInclude
}],
blackoutGfs: [{
vertices: regionToExclude
}]
},
regionB: {
whiteoutGfs: [{
vertices: thirdRegionToInclude
}]
}
}, function(err, geofenceGroup) {
geofenceGroup.isValidKey([0, 0], 'regionA');
geofenceGroup.isValidKey([0, 0], 'regionB');
geofenceGroup.getValidKeys([0, 0]);
});
doubleDouble.getGeofenceGroup('groupOfGeofences', function(err, geofenceGroup) {
console.log('similarly get just by the id if already defined');
console.log('if the data is provided again, it WILL NOT rebuild all of those geofences');
console.log('it will use the already-built version, instead, to avoid excessive CPU burn');
});