Sorry, you need to enable JavaScript to visit this website.

Geofencing examples

Geofencing examples

Have a look at our functional examples to see how easy it is to implement Geofencing features.
Speed up development by using our sample code snippets in your app. Try all of this out with the Maps SDK Examples app!

MPORTANT: In order to use Report service you need to complete each of the following steps using a few of Geofencing API methods:

  1. Generate an admin key that can be used to administer Geofencing objects/fences/projects as described on
    Register admin key

  2. Create a new project and assign it to the customer’s configuration as described on Add a new project

  3. Add a new fence to a project endpoint and automatically link it to a single project as described here
    Add new fence project

Report service

IMPORTANT: The TomTom Geofencing API and Geofencing module in the Maps SDK for iOS are currently
in Public Preview. To find out what our Public Preview is and to revisit our Terms and Conditions,
see this Public Preview Page

 

Give your user the ability to check if an object is inside or outside of predefined geographic area.

To use a Report service you need to have at least one project defined within configuration.

IMPORTANT: In order to use the Report service you need to complete each of the following steps using several of the following Geofencing API methods:

  1. Generate an Admin Key that can be used to administer Geofencing objects/fences/projects as described in the following example:
    Register admin key

  2. Create a new project and assign it to the customer’s configuration as described in the following example: Add a new project

  3. Add a new fence to a project endpoint and automatically link it to a single project as described in the following example:
    Add new fence to a project

Sample use case:
You want to check if your user is still in the city center and/or within certain part of the city center.

This example contains two predefined fences, one representing the center of Amsterdam and the other representing
Amsterdams De Plantage area.

Please note: The Report service doesn’t provide you with the coordinates of a fence, These coordinates are defined
while creating a fence and can only be accessed from the
Fences service.
In this example fences are drawn for a better understanding of this service.

IMPORTANT: The Report service example requires

  • Geofencing API Key - you can obtain this key from from Geofencing API site

  • Administration Key - you need to generate this key using Register Admin Key

  • Two projects with ID’s - run TomTomGeofencingProjectGenerator.sh script that we made for you to generate projects with fences.
    You can find it at Maps SDK Examples app repository.

  • Update the following fields in GeofencingReportViewController with values returned from the script:

_

let projectId1 = "57287023-a968-492c-8473-7e049a606425"
let projectId2 = "fcf6d609-550d-49ff-bcdf-02bba08baa28"
_projectId1 = @"57287023-a968-492c-8473-7e049a606425";
_projectId2 = @"fcf6d609-550d-49ff-bcdf-02bba08baa28";

Please note: You need to have jQuery installed otherwise the script will not work as intented:

  • For Linux users: sudo apt install jq

  • For Mac OS users: brew install jq

 

  1. To obtain a report for an object you will need to create a query in the following manner:

_

let reportQuery = TTGeofencingReportQueryBuilder(location: TTLocation(coordinate: coordinate))
    .withProject(projectId)
    .withRange(range).build()
TTGeofencingReportQuery *reportQuery = [[[[[TTGeofencingReportQueryBuilder alloc] initWithLocation:[[TTLocation alloc] initWithCoordinate:coorinate]] withProject:projectId] withRange:_range] build];

 

  1. Then register a result delegate to receive callback with report service response and now you can perform a report service request by calling:

_

service?.report(with: reportQuery) { report, _ in
    self.responseGeofencing(report: report)
}
[_service reportWithQuery:reportQuery
         completionHandle:^(TTGeofencingReport *_Nullable report, TTResponseError *_Nullable error) {
           [weakSelf responseGeofencing:report];
         }];

 

The Report Service returns summary and:

  • A list of fences that object is inside of

  • A list of fences that object is outside of

Each element of the list contains details about a fence such as name, ID of a fence, distance and
closest point.

In the following example the black marker represents an object’s position when requesting a location report.
It shows a balloon after a response is received with names of fences that object
is inside/outside of. Green markers indicate the closest point to the fence from a
geofenced object’s position.



image

Object is inside one fence

image

Fence marker clicked

You are here