Add geofences - Amazon Location Service

Add geofences

Geofences contain points and vertices that form a closed boundary, which defines an area of interest. Geofence collections store and manage one or multiple geofences.

Amazon Location geofence collections stores geofences defined by using a standard geospatial data format called GeoJSON (RFC 7946). You can use tools, such as geojson.io, at no charge to draw your geofences graphically and save the output GeoJSON file.

Note

Amazon Location doesn't support polygons with holes, multipolygons, clockwise polygons, and geofences that cross the antimeridian.

Create a geofence collection

Create a geofence collection to store and manage geofences by using the Amazon Location console, the AWS CLI, or the Amazon Location APIs.

Console

To create a geofence collection using the Amazon Location console

  1. Open the Amazon Location Service console at https://console.aws.amazon.com/location/.

  2. In the left navigation pane, choose Geofence collections.

  3. Choose Create geofence collection.

  4. Fill out the following boxes:

    • Name – Enter a unique name. For example, ExampleGeofenceCollection. Maximum 100 characters. Valid entries include alphanumeric characters, hyphens, periods, and underscores.

    • Description – Enter an optional description to differentiate your resources.

  5. Under Pricing Plan, choose answers that best fit how you intend to use your geofence collection.

    • For Mobile Asset Tracking or Mobile Asset Management pricing plans, you must associate at least one tracker and send at least one location update per month.

  6. Under EventBridge rule with CloudWatch as a target, you can create an optional EventBridge rule to get started reacting to geofence events. This enables Amazon Location to publish events to Amazon CloudWatch Logs.

  7. (Optional) Under Tags, enter a tag Key and Value. This adds a tag your new geofence collection. For more information, see Tagging your resources.

  8. (Optional) Under Customer managed key encryption, you can choose to Add a customer managed key. This adds a symmetric customer managed key that you create, own, and manage over the default AWS owned encryption. For more information, see Encrypting data at rest.

  9. Choose Create geofence collection.

API

To create a geofence collection using the Amazon Location APIs

Use the CreateGeofenceCollection operation from the Amazon Location Geofences APIs.

The following example uses an API request to create a geofence collection called ExampleGeofenceCollection, and a request-based usage pricing plan. The geofence collection is associated with a customer managed KMS key to encrypt customer data.

POST /geofencing/v0/collections Content-type: application/json { "CollectionName": "ExampleGeofenceCollection", "Description": "Geofence collection 1 for shopping center", "KmsKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "PricingPlan": "RequestBasedUsage", "Tags": { "Tag1" : "Value1" } }
AWS CLI

To create a geofence collection using AWS CLI commands

Use the create-geofence-collection command.

The following example uses an AWS CLI to create a geofence collection called ExampleGeofenceCollection, and a request-based usage pricing plan. The geofence collection is associated with a customer managed KMS key to encrypt customer data.

aws location \ create-geofence-collection \ --collection-name "ExampleGeofenceCollection" \ --description "Shopping center geofence collection" \ --kms-key-id "1234abcd-12ab-34cd-56ef-1234567890ab" \ --pricing-plan "RequestBasedUsage" \ --tags Tag1=Value1
Note

Billing depends on your pricing plan and usage. You may incur fees for the use of other AWS services. For more information, see Amazon Location Service pricing.

Draw geofences using a GeoJSON tool

Now that you've created your geofence collection, you can define your geofences by using a GeoJSON editing tool, such as geojson.io.

To create a GeoJSON file

  1. Open a GeoJSON editing tool. For example, geojson.io.

  2. Choose the Draw a polygon icon and draw your area of interest.

  3. Choose Save, then choose GeoJSON from the dropdown menu.

Put geofences in a geofence collection

You can use the resulting GeoJSON file to upload your geofences using the Amazon Location Service console, the AWS CLI, or the Amazon Location APIs:

Console

To add a geofence to a geofence collection using the Amazon Location Service console

  1. Open the Amazon Location Service console at https://console.aws.amazon.com/location/.

  2. In the left navigation pane, choose Geofence collections.

  3. From the Geofence collections list, select the name link for the target geofence collection.

  4. Under Geofences, choose Create geofences.

  5. In the Add geofences window, drag, and drop your GeoJSON into the window.

  6. Choose Add geofences.

API

To add geofences using the Amazon Location APIs

Use the PutGeofence operation from the Amazon Location Geofences APIs.

The following example uses an API request to add a geofence given the ID GEOFENCE-EXAMPLE1 to a geofence collection called ExampleGeofenceCollection:

PUT /geofencing/v0/collections/ExampleGeofenceCollection/geofence/GEOFENCE-EXAMPLE1 Content-type: application/json { "Geometry": { "Polygon": [ [ [-5.716667, -15.933333], [-14.416667, -7.933333], [-12.316667, -37.066667], [-5.716667, -15.933333] ] ] } }

Alternatively, you can add more than one geofence using the BatchPutGeofence operation.

POST /geofencing/v0/collections/ExampleGeofenceCollection/put-geofences Content-type: application/json { "Entries": [ { "GeofenceId": "GEOFENCE-EXAMPLE1", "Geometry": { "Polygon": [ [ [-5.716667, -15.933333], [-14.416667, -7.933333], [-12.316667, -37.066667], [-5.716667, -15.933333] ] ] } } ] }
AWS CLI

To add a geofence to a geofence collection using AWS CLI commands

Use the put-geofence command.

The following example uses an AWS CLI to add a geofence to a geofence collection called ExampleGeofenceCollection.

$ aws location \ put-geofence \ --collection-name ExampleGeofenceCollection \ --geofence-id ExampleGeofenceTriangle \ --geometry 'Polygon=[[[-5.716667, -15.933333],[-14.416667, -7.933333],[-12.316667, -37.066667],[-5.716667, -15.933333]]]' { "CreateTime": "2020-11-11T00:16:14.487000+00:00", "GeofenceId": "ExampleGeofenceTriangle", "UpdateTime": "2020-11-11T00:19:59.894000+00:00" }