GeofenceMgr
GeofenceMgr¶
Overview | |
---|---|
Description | A class used for managing geofences. A geofence defines a geographic area that will either generate an alert when a route enters it, or will be avoided by the route. A geofence has many different applications, including:
|
Supported on Android Since Version | 9.6.0.821 |
Type | Class |
Package | com.alk.cpik.geofence |
Methods
Method Name | Return Type | Description |
---|---|---|
addGeofencesXML(String) | Void | Adds geofences from an XML file. |
addGeofenceSet(GeofenceSet) | Void | Adds a geofence set. If a set with the same name exists, it will be overwritten. |
addGeofences(String, List<Geofence>) | Void | Adds a list of geofences to an existing geofence set. If the set does not exist, or if the set name is blank, the fences will be added to the default set. |
getGeofenceSet(String) | GeofenceSet | Gets a geofence set by its name. |
getGeofence(String, String) | Geofence | Gets an individual geofence using its name and set name. |
getGeofences() | List<GeofenceSet> | Gets a list of all of CoPilot's current geofences. |
deleteGeofences(String, List<String>) | Void | Deletes geofences, geofence sets, or both. If both parameters are null, all geofences and geofence sets will be deleted. |
Hooks and Callbacks
Hooks and Callbacks related to Geofencing can be found below.
GeofenceListener | |
---|---|
onGeofenceEntry | |
onGeofenceExit | |
onGeofenceRouteThrough |
GeofenceActiveState¶
Overview | |
---|---|
Description | An enum of how routing through a geofence will be handled by CoPilot. |
Supported on Android Since Version | 9.6.0.821 |
Type | Enum |
Package | com.alk.cpik.geofence |
Values
Value | Description |
---|---|
NONE | Do not take the geofence into account while routing |
WARN | Warn before routing through the geofence |
AVOID | Avoid routing through the geofence |
Hooks and Callbacks
Hooks and Callbacks related to Geofencing can be found below.
GeofenceListener | |
---|---|
onGeofenceEntry | |
onGeofenceExit | |
onGeofenceRouteThrough |
GeofenceNotification¶
Overview | |
---|---|
Description | An enum of notifications sent when the position enters or exits a geofence. |
Supported on Android Since Version | 9.6.0.821 |
Type | Enum |
Package | com.alk.cpik.geofence |
Values
Value | Description |
---|---|
NONE | No callbacks will be sent. |
ENTER | Send a callback when entering the geofence, but not when exiting. |
EXIT | Send a callback when exiting the geofence, but not when entering. |
ENTER_AND_EXIT | Send callbacks both when entering and exiting the geofence. |
Hooks and Callbacks
Hooks and Callbacks related to Geofencing can be found below.
GeofenceListener |
---|
onGeofenceEntry |
onGeofenceExit |
onGeofenceRouteThrough |
GeofenceShape¶
Overview | |
---|---|
Description | An enum of the possible shapes of a geofence. |
Supported on Android Since Version | 9.6.0.821 |
Type | Enum |
Package | com.alk.cpik.geofence |
Values
Value | Description | Notes |
---|---|---|
CIRCLE | Circle | Defined by exactly two points. These points define the bounding square in which the circle lies. |
POLYGON | Multi-sided polygon | Must have three or more points. Each point is connected in order, then closed to form the polygon. |
Hooks and Callbacks
Hooks and Callbacks related to Geofencing can be found below.
GeofenceListener |
---|
onGeofenceEntry |
onGeofenceExit |
onGeofenceRouteThrough |
Geofence¶
Overview | |
---|---|
Description | A geofence object. The geofence constructor is not public. To initiate a geofence, call static methods getPolygon() or getCircle(). |
Supported on Android Since Version | 9.6.0.821 |
Type | Object |
Package | com.alk.cpik.geofence |
Static Methods
Method Name | Return Type | Description |
---|---|---|
getPolygon(List | Geofence | Returns a polygon geofence by using list of coordinates. |
getCircle(Coordinate pointA, Coordinate pointB) | Geofence | Returns a circle geofence by using two coordinate points. |
Methods
Method Name | Return Type | Description |
---|---|---|
getShape() | GeofenceShape | Returns shape of the geofence (i.e. circle or polygon). |
getLabel() | String | Returns label of the geofence. |
getName() | String | Returns name of the geofence. |
getPoints() | ArrayList<Coordinate> | Returns list of coordinate points of the geofence. |
setName(String) | Void | Sets name of the geofence. |
setLabel(String) | Void | Sets label of the geofence. |
Hooks and Callbacks
Hooks and Callbacks related to Geofencing can be found below.
GeofenceListener | |
---|---|
onGeofenceEntry | |
onGeofenceExit | |
onGeofenceRouteThrough |
GeofenceSet¶
Overview | |
---|---|
Description | A grouped set of Geofence objects. |
Supported on Android Since Version | 9.6.0.821 |
Type | Object |
Package | com.alk.cpik.geofence |
Constructor
Constructor | |
---|---|
GeofenceSet(String setName) |
Methods
Method Name | Return Type | Description |
---|---|---|
getName() | String | Returns the name of the geofence. |
isPersistent() | Boolean | Returns true if the geofence is persistent (saved and loaded after CoPilot is closed). |
getNotification() | GeofenceNotification | Gets geofence notification. |
hasUINotification() | Boolean | Returns whether or not the geofence has a UI notification. |
hasRouteThroughEvent() | Boolean | Returns whether or not the geofence has route-through events. |
getActiveState() | GeofenceActiveState | Returns the active state of the geofence. |
hasBeep() | Boolean | Returns whether or not the geofence has a beep sound. |
getFillColor() | Int | Returns the geofence fill color value. |
getBorderColor() | Int | Returns the geofence border color value. |
getDrawUnderRoads() | Boolean | Returns true if fences are drawn under the roads. |
getBorderWidth() | Int | Returns the number of geofences added in geofence set. |
getGeofenceList() | ArrayList<Geofence> | Returns the list of geofences in the geofence set. |
setName(String) | void | Sets the name for the geofence. |
setPersistent(boolean) | Void | Sets whether the geofence set is persistent (saved and loaded after CoPilot is closed). |
setNotification(GeofenceNotification) | Void | Sets the notification for the geofence set. |
setUINotification(Boolean) | Void | Sets the UI notification for the geofence set. |
setRouteThroughEvent(Boolean) | Void | Sets the route-through event for the geofence set. |
setActiveState(GeofenceActiveState) | Void | Sets the activation state for the geofence set. |
setBeep(Boolean) | Void | Sets the beep for the geofence set. |
setFillColor(int) | Void | Sets the fill color for the geofence set. |
setBorderColor(int) | Void | Sets the border color for the geofence set. |
setDrawUnderRoads(Boolean) | Void | Sets whether or not to draw fences under the roads. |
setBorderWidth(int) | Void | Sets the number Geofence in Geofence set. |
addGeofence(Geofence) | Void | Adds a geofence to the geofence set. |
Hooks and Callbacks
Hooks and Callbacks related to Geofencing can be found below.
GeofenceListener |
---|
onGeofenceEntry |
onGeofenceExit |
onGeofenceRouteThrough |
GeofenceMgr.addGeofencesXML¶
Overview | |
---|---|
Description | Imports geofences from an XML document. |
Supported on Android Since Version | 9.6.0.821 |
Type | Object |
Package | com.alk.cpik.geofence |
Syntax
void addGeofencesXML(String xmlDocument)
Parameters
xmlDocument – A single string containing the contents of the xml file to import
Sample Code
//Put the full file path of geofenceXmlFile
String geofenceXmlFile = "Geofence XML file with path";
GeofenceMgr.addGeofencesXML(geofenceXmlFile);
XML Format
Single Polygon Set:
<ArrayOfMapObjects Name="SampleSet" Persistent="1" NotifySDKOnEnterExit="both" NotifyUIWhileInside="1" NotifySDKOnRouteThrough="1" ActiveState="off" BeepOnEnterExit="0" InnerColor="0xb0345678" OuterColor="0x00ff0000" DrawBelowRoads="0" >
<MapObject Type="Polygon" Label="Philly Area" Name="PolygonA">
<Point lat="40.000000" lon="-75.100000">
<Point lat="40.000000" lon="-75.300000">
<Point lat="39.870000" lon="-75.300000">
<Point lat="39.870000" lon="-75.100000">
</MapObject>
<MapObject Type="Polygon" Label="Cape May Area" Name="PolygonB">
<Point lat="38.930000" lon="-74.980000">
<Point lat="38.980000" lon="-74.970000">
<Point lat="38.950000" lon="-74.870000">
<Point lat="38.940000" lon="-74.900000">
<Point lat="38.920000" lon="-74.926000">
</MapObject>
</ArrayOfMapObjects>
Multiple Polygon Sets:
<MapObjectSets>
<ArrayOfMapObjects Name="SampleSet1" Persistent="1" NotifySDKOnEnterExit="both" NotifyUIWhileInside="1" NotifySDKOnRouteThrough="1" ActiveState="off" BeepOnEnterExit="0" InnerColor="0xb0345678" OuterColor="0x00ff0000" DrawBelowRoads="0">
<MapObject Type="Polygon" Label="Philly Area" Name="PolygonA">
<Point lat="40.000000" lon="-75.100000">
<Point lat="40.000000" lon="-75.300000">
<Point lat="39.870000" lon="-75.300000">
<Point lat="39.870000" lon="-75.100000">
</MapObject>
<MapObject Type="Polygon" Label="Cape May Area" Name="PolygonB">
<Point lat="38.930000" lon="-74.980000">
<Point lat="38.980000" lon="-74.970000">
<Point lat="38.950000" lon="-74.870000">
<Point lat="38.940000" lon="-74.900000">
<Point lat="38.920000" lon="-74.926000">
</MapObject>
</ArrayOfMapObjects>
<ArrayOfMapObjects Name="SampleSet2" Persistent="1" NotifySDKOnEnterExit="none" NotifyUIWhileInside="1" NotifySDKOnRouteThrough="1" ActiveState="avoid" BeepOnEnterExit="1" InnerColor="0xb0345678" OuterColor="0x00ff0000" DrawBelowRoads="0">
<MapObject Type="Polygon" Label="Jersey City Area" Name="PolygonC">
<Point lat="40.711400" lon="-74.064800">
<Point lat="40.711400" lon="-74.064800">
<Point lat="40.801400" lon="-74.864800">
<Point lat="40.951400" lon="-74.964800">
</MapObject>
<MapObject Type="Polygon" Label="Hoboken Area" Name="PolygonD">
<Point lat="43.745400" lon="-74.027900">
<Point lat="43.745400" lon="-74.027900">
<Point lat="43.775400" lon="-74.727900">
<Point lat="43.785400" lon="-74.827900">
<Point lat="43.805400" lon="-74.927900">
</MapObject>
</ArrayOfMapObjects>
</MapObjectSets>
Explanation of ArrayOfMapObjects properties:
Property | Description | Required/Optional |
---|---|---|
Name | The name of the polygon set. | Optional |
Persistent | Whether or not this set should be saved and loaded after CoPilot is closed. | Optional, default is false if the set is not named, true if the set is named. |
NotifyUIWhileInside | Whether or not to display a fence icon when within the bounds of the fence. | Optional, default is false |
BeepOnEnterExit | Whether or not to sound an audible beep when entering/exiting the bounds of the fence. | Optional, default is false |
InnerColor | The inner shading of the fence, in the format 0xRRGGBBAA. | Optional, default is 0x00afafaf |
OuterColor | The border color of the fence, in the format 0xRRGGBBAA. | Optional, default is 0x000000ff |
DrawBelowRoads | Whether to draw the fence below roads or on top of them. | Optional, default is true |
Explanation of MapObject properties:
Property | Description | Required/Optional |
---|---|---|
Type | Whether the shape is a “Polygon” or a “Circle.” | Required |
Label | A label to draw on the map next to the shape. | Optional |
Name | A unique identification name for the fence. | Optional |
Hooks and Callbacks
Hooks and Callbacks related to Geofencing can be found below.
GeofenceListener | |
---|---|
onGeofenceEntry | |
onGeofenceExit | |
onGeofenceRouteThrough |
GeofenceMgr.addGeofenceSet¶
Overview | |
---|---|
Description | Adds a geofence set to CoPilot. |
Supported on Android Since Version | 9.6.0.821 |
Type | Method |
Package | com.alk.cpik.geofence |
Syntax
void addGeofencesSet(GeofenceSet geofenceSet)
Parameters
GeofenceSet geofenceSet – Geofence set to add.
Sample Code
//To create a geofence set we need at least two coordinates
List<Coordinate> coordList = new ArrayList<Coordinate>();
double latitude = 40.364992;
double longitude = -74.632334;
Coordinate coordA = new Coordinate(latitude, longitude);
latitude = 40.338631;
longitude = -74.639373;
Coordinate coordB = new Coordinate(latitude, longitude);
latitude = 40.352369;
longitude = -74.689154;
Coordinate coordC = new Coordinate(latitude, longitude);
latitude = 40.368558;
longitude = -74.670615;
Coordinate coordD = new Coordinate(latitude, longitude);
//adding all coordinates in the list.
coordList.add(coordA);
coordList.add(coordB);
coordList.add(coordC);
coordList.add(coordD);
try {
//Create Geofence set it need the name of geofence set.
String geofenceSetName = "Geofence Name";
GeofenceSet setToAdd = new GeofenceSet(geofenceSetName);
//This is taking getPolygon() method if there are more than 2 coordinates
// else it should be getCircle() method for 2 coordinates.
if (coordList.size() == 2)
setToAdd.addGeofence(Geofence.getCircle(coordList.get(0), coordList.get(1)));
//or
// setToAdd.addGeofence(Geofence.getCircle(coordA, coordB));
else if (coordList.size() > 2)
setToAdd.addGeofence(Geofence.getPolygon(coordList));
GeofenceMgr.addGeofenceSet(setToAdd);
} catch (GeofenceException e) {
e.printStackTrace();
}
Hooks and Callbacks
Hooks and Callbacks related to Geofencing can be found below.
GeofenceListener | |
---|---|
onGeofenceEntry | |
onGeofenceExit | |
onGeofenceRouteThrough |
Related APIs
- GeofenceMgr.AddGeofencesFromXML()
- GeofenceMgr.AddGeofence()
- GeofenceMgr.GetGeofence()
- GeofenceMgr.GetGeofenceSet()
- GeofenceMgr.GetAllGeofences()
- GeofenceMgr.DeleteGeofences()
GeofenceMgr.addGeofences¶
Overview | |
---|---|
Description | Adds a list of geofences to an existing geofence set. |
Supported on Android Since Version | 9.6.0.821 |
Type | Method |
Package | com.alk.cpik.geofence |
Syntax
void addGeofences(String setName, List fenceList)
Parameters
String setName – The name of the existing geofence set to which to add the fences.
List fenceList – The list of fences to add to the set.
Sample Code
try {
List<Geofence> fencesToAdd = new ArrayList<Geofence>();
List<Coordinate> coordListA = new ArrayList<Coordinate>();
double latitude = 40.364992;
double longitude = -74.632334;
Coordinate coordA = new Coordinate(latitude, longitude);
latitude = 40.338631;
longitude = -74.639373;
Coordinate coordB = new Coordinate(latitude, longitude);
latitude = 40.352369;
longitude = -74.689154;
Coordinate coordC = new Coordinate(latitude, longitude);
latitude = 40.368558;
longitude = -74.670615;
Coordinate coordD = new Coordinate(latitude, longitude);
//adding all coordinates in the list.
coordListA.add(coordA);
coordListA.add(coordB);
coordListA.add(coordC);
coordListA.add(coordD);
//adding coordinateList in fenceList. There is more the three coordinates it
// will create a polygon
fencesToAdd.add(Geofence.getPolygon(coordListA));
latitude = 40.362349;
longitude = -74.632111;
coordA = new Coordinate(latitude, longitude);
latitude = 40.338153;
longitude = -74.639125;
coordB = new Coordinate(latitude, longitude);
fencesToAdd.add(Geofence.*getCircle*(coordA, coordB));
//get all existing geofence sets in copilot
List<GeofenceSet> geofenceSets = GeofenceMgr.getGeofences();
if (geofenceSets.size() > 0) {
//choosing first geofence set name in which we are going to add the fence
String geofenceSetName = geofenceSets.get(0).getName();
GeofenceMgr.addGeofences(geofenceSetName, fencesToAdd);
} else {
System.out.println("There is not geofence set available");
}
} catch (GeofenceException e) {
e.printStackTrace();
}
Hooks and Callbacks
Hooks and Callbacks related to Geofencing can be found below.
GeofenceListener | |
---|---|
onGeofenceEntry | |
onGeofenceExit | |
onGeofenceRouteThrough |
Related APIs
- GeofenceMgr.AddGeofencesFromXML()
- GeofenceMgr.AddGeofenceSet
- GeofenceMgr.GetGeofence()
- GeofenceMgr.GetGeofenceSet()
- GeofenceMgr.GetAllGeofences()
- GeofenceMgr.DeleteGeofences()
GeofenceMgr.getGeofenceSet¶
Overview | |
---|---|
Description | Returns an existing geofence set. |
Supported on Android Since Version | 9.6.0.821 |
Type | Method |
Package | com.alk.cpik.geofence |
Syntax
GeofenceSet getGeofenceSet(String setName)
Parameters
String setName – The name of the geofence set to get
Return Value
GeofenceSet – A Geofence set representing the set with the given name.
Sample Code
// getting the list of Geofence sets
List<GeofenceSet> geofenceSetsList = GeofenceMgr.getGeofences();
if (geofenceSetsList.size() > 0) {
//choosing the first geofence set name from list
String geofenceSetName = geofenceSetsList.get(0).getName();
//calling getGeofenceSet(String)
GeofenceSet geoSet = GeofenceMgr.getGeofenceSet(geofenceSetName);
if (geoSet != null) {
System.out.println("Sets Name : " + geoSet.getName());
System.out.println("Sets ActiveState : " + (geoSet.isPersistent() ? " is Persistent" : " is Not Persistent"));
System.out.println("Sets ActiveState : " + geoSet.getActiveState());
System.out.println("Sets BorderWidth : " + geoSet.getBorderWidth());
System.out.println("Sets BorderColor : " + geoSet.getBorderColor());
System.out.println("Sets Notification : " + geoSet.getNotification());
//for all values
System.out.println("Sets info : " + geoSet.toString());
}
} else {
System.out.println("There is no geofence set available");
}
Hooks and Callbacks
Hooks and Callbacks related to Geofencing can be found below.
GeofenceListener | |
---|---|
onGeofenceEntry | |
onGeofenceExit | |
onGeofenceRouteThrough |
Related APIs
- GeofenceMgr.AddGeofencesFromXML
- GeofenceMgr.AddGeofenceSet
- GeofenceMgr.AddGeofence
- GeofenceMgr.GetGeofence
- GeofenceMgr.GetAllGeofences
- GeofenceMgr.DeleteGeofences
GeofenceMgr.getGeofence¶
Overview | |
---|---|
Description | Gets an individual, existing geofence from an existing geofence set. |
Supported on Android Since Version | 9.6.0.821 |
Type | Method |
Package | com.alk.cpik.geofence |
Syntax
Geofence getGeofence(String setName, String fenceName)
Parameters
String setName – The name of the existing geofence set.
String fenceName – The name of the existing geofence.
Return Value
Geofence representing the desired geofence
Sample Code
List<GeofenceSet> geofenceSetsList = GeofenceMgr.getGeofences();
if (geofenceSetsList.size() > 0) {
//choosing the first geofence set Name
String geofenceSetName = geofenceSetsList.get(0).getName();
GeofenceSet geoSet = GeofenceMgr.*getGeofenceSet*(geofenceSetName);
List<Geofence> fencesList = geoSet.getGeofenceList();
if (fencesList.size() > 0) {
//choosing first fence from fenceList
String GeofenceFenceName = fencesList.get(0).getName();
Geofence fence = GeofenceMgr.getGeofence(geofenceSetName, GeofenceFenceName);
if (fence != null) {
System.out.println("geofence Name : " + fence.getName());
System.out.println("geofence Shape : " + fence.getShape());
System.out.println("geofence Label : " + fence.getLabel());
System.out.println("geofence coordinatesList : " + fence.getPoints().toString());
//for all values
System.out.println("geofence info : " + fence.toString());
}
}
else {
System.out.println("There is no geofence for set " + geofenceSetName);
}
Hooks and Callbacks
Hooks and Callbacks related to Geofencing can be found below.
GeofenceListener |
---|
onGeofenceEntry |
onGeofenceExit |
onGeofenceRouteThrough |
Related APIs
- GeofenceMgr.AddGeofencesFromXML
- GeofenceMgr.AddGeofenceSet
- GeofenceMgr.AddGeofence
- GeofenceMgr.GetAllGeofences
- GeofenceMgr.DeleteGeofences
GeofenceMgr.getGeofences¶
Overview | |
---|---|
Description | Gets a list of all of the geofence sets currently in CoPilot. |
Supported on Android Since Version | 9.6.0.821 |
Type | Method |
Package | com.alk.cpik.geofence |
Syntax
List getGeofences()
Return Value
List - All of the sets of fences currently in CoPilot.
Sample Code
// Print every geofence and every geofence set in CoPilot
List<GeofenceSet> setsList = GeofenceMgr.getGeofences();
for (GeofenceSet set : setsList) {
System.out.println("Geofence Set: " + set.getName());
for (Geofence fence : set.getGeofenceList()) {
System.out.println("geofence Name : " + fence.getName());
System.out.println("geofence Shape : " + fence.getShape());
System.out.println("geofence Label : " + fence.getLabel());
System.out.println("geofence coordinatesList : " + fence.getPoints().toString());
System.out.println("\\tGeofence: " + fence.getName());
}
}
Hooks and Callbacks
Hooks and Callbacks related to Geofencing can be found below.
GeofenceListener |
---|
onGeofenceEntry |
onGeofenceExit |
onGeofenceRouteThrough |
GeofenceMgr.deleteGeofences¶
Overview | |
---|---|
Description | Deletes all user-created geofences; a geofence set and its fences; or an individual geofence from CoPilot. There will always be two default geofence sets that remain—one is named "Default_Set" and the other is "Default_SetNonPersistent". |
Supported on Android Since Version | 9.6.0.821 |
Type | Method |
Package | com.alk.cpik.geofence |
Syntax
void deleteGeofences(String setName, List fenceList)
Parameters
setName – The name of the geofence set to delete. If this is an empty string and fenceList is empty or null, all geofences will be deleted.
fenceList – The list of names of fences to delete. If this list is empty or null, and setName is valid, everything in that set will be deleted. If this list has multiple elements, each fence in the list in setName will be deleted.
Sample Code
// Delete existing fence from the existing set
List<GeofenceSet> geofenceSetsList = GeofenceMgr.getGeofences();
if (geofenceSetsList.size() == 0) {
System.out.println("There no Geofence set available");
return;
}
// taking fence list form first Geofence Set
List<Geofence> fenceList = geofenceSetsList.get(0).getGeofenceList();
if (fenceList.size() == 0) {
System.out.println("There no fence is available for Geofence set " + geofenceSetsList.get(0).getName());
return;
}
List<String> deleteList = new ArrayList<String>();
//taking first fence from the list
deleteList.add(fenceList.get(0).getName());
//Deleting first fence from first Geofence set.
GeofenceMgr.deleteGeofences(geofenceSetsList.get(0).getName(), deleteList);
// Delete all fences from First Geofence set
List<String> deleteList2 = new ArrayList<String>();
GeofenceMgr.deleteGeofences(geofenceSetsList.get(0).getName(), deleteList2);
// Delete all geofence sets and all Geofences from CoPilot
List<String> deleteList3 = new ArrayList<String>();
GeofenceMgr.deleteGeofences("", deleteList3);
}
Hooks and Callbacks
Hooks and Callbacks related to Geofencing can be found below.
GeofenceListener | |
---|---|
onGeofenceEntry | |
onGeofenceExit | |
onGeofenceRouteThrough |
Related APIs
- GeofenceMgr.AddGeofencesFromXML
- GeofenceMgr.AddGeofenceSet
- GeofenceMgr.AddGeofence
- GeofenceMgr.GetAllGeofences