Geo-Fence (Radial)

No algorithm description given

The Algorithm This is an O(n) algorithm that provides information about wether or not a group of GPS coordinates are contained within a user defined Geo-Fence.        Calculations are made using a spherical earth model (ignoring ellipsoidal effects).   While the earth is very slightly ellipsoidal, spherical models used in this algorithm will only  yield  up to a 0.3% error margin. Object within Geo-Fence(left). Object not within Geo-Fence(right) Defining Geo-Fences To define a geo-fence two pieces of information must be given. 1) The relative position of the center of the geo-boundary. Expressed as GPS coordinates.   2) The radius of the geo-fence expressed in meters. If this value is not provided a default value of 150 meters will be assumed. The algorithm will detect if the GPS positions given are within the defined radius of the geo-fence.        GPS information A single call to this algorithm checks a batch size of up to 1,000 GPS markers. In the event that more than 1,000 of these markers are provided, only the first 1,000 will be processed, the rest will be returned as a list of unprocessed objects.     Processed objects will convey six types of information.   1)  A boolean indicating wether or not the processed object is within the geo-boundary.   2) Distance from the center of the geo-fence to the processed object; Expressed in meters  4) The smallest distance from the geo-fence center to the processed object; Expressed in meters 5) The original lat, lon information.   6) An error margin, expressed in meters. This margin details distance computation errors that may accrue for larger distances.    

(no tags)

Cost Breakdown

10 cr
royalty per call
1 cr
usage per second
avg duration

Cost Calculator

API call duration (sec)
API calls
Estimated cost
per calls
for large volume discounts
For additional details on how pricing works, see Algorithmia pricing.

Internet access

This algorithm has Internet access. This is necessary for algorithms that rely on external services, however it also implies that this algorithm is able to send your input data outside of the Algorithmia platform.

To understand more about how algorithm permissions work, see the permissions documentation.

1. Type your input

2. See the result

Running algorithm...

3. Use this algorithm

curl -X POST -d '{{input | formatInput:"curl"}}' -H 'Content-Type: application/json' -H 'Authorization: Simple YOUR_API_KEY'
View cURL Docs
algo auth
algo run algo://vagrant/AreaPolling/0.1.2 -d '{{input | formatInput:"cli"}}'
View CLI Docs
import (
  algorithmia ""

input := {{input | formatInput:"go"}}

var client = algorithmia.NewClient("YOUR_API_KEY", "")
algo, _ := client.Algo("algo://vagrant/AreaPolling/0.1.2")
resp, _ := algo.Pipe(input)
response := resp.(*algorithmia.AlgoResponse)
View Go Docs
import com.algorithmia.*;
import com.algorithmia.algo.*;

String input = "{{input | formatInput:"java"}}";
AlgorithmiaClient client = Algorithmia.client("YOUR_API_KEY");
Algorithm algo = client.algo("algo://vagrant/AreaPolling/0.1.2");
AlgoResponse result = algo.pipeJson(input);
View Java Docs
import com.algorithmia._
import com.algorithmia.algo._

val input = {{input | formatInput:"scala"}}
val client = Algorithmia.client("YOUR_API_KEY")
val algo = client.algo("algo://vagrant/AreaPolling/0.1.2")
val result = algo.pipeJson(input)
View Scala Docs
var input = {{input | formatInput:"javascript"}};
           .then(function(output) {
View Javascript Docs
var input = {{input | formatInput:"javascript"}};
           .then(function(response) {
View NodeJS Docs
import Algorithmia

input = {{input | formatInput:"python"}}
client = Algorithmia.client('YOUR_API_KEY')
algo = client.algo('vagrant/AreaPolling/0.1.2')
print algo.pipe(input)
View Python Docs

input <- {{input | formatInput:"r"}}
client <- getAlgorithmiaClient("YOUR_API_KEY")
algo <- client$algo("vagrant/AreaPolling/0.1.2")
result <- algo$pipe(input)$result
View R Docs
require 'algorithmia'

input = {{input | formatInput:"ruby"}}
client = Algorithmia.client('YOUR_API_KEY')
algo = client.algo('vagrant/AreaPolling/0.1.2')
puts algo.pipe(input).result
View Ruby Docs
use algorithmia::*;

let input = {{input | formatInput:"rust"}};
let client = Algorithmia::client("YOUR_API_KEY");
let algo = client.algo("vagrant/AreaPolling/0.1.2");
let response = algo.pipe(input);
View Rust Docs
import Algorithmia

let input = "{{input | formatInput:"swift"}}";
let client = Algorithmia.client(simpleKey: "YOUR_API_KEY")
let algo = client.algo(algoUri: "vagrant/AreaPolling/0.1.2") { resp, error in
View Swift Docs
  • {{comment.username}}