Class FeatureFenceParameters
The features that create a FeatureFenceParameters
provide a set of geometries (and
attributes) that define targets for the Geotrigger
. For example, if the condition is
"notify me when my position comes within 50 meters of one of my target areas", the
fence data are "my target areas" and each Feature
is one target area.
Create a FeatureFenceParameters
using a FeatureTable
. The features can have point,
line, or polygon geometry. For points and lines, you must also supply a
FenceParameters.getBufferDistance()
. Each feature in the table represents a single fence.
You can filter features using attributes or geometry by supplying a where clause. For example, you could further refine "my target areas" to be "my target areas that are open and are in California".
The number of features fetched by querying an online table is limited by the layer's
ArcGISFeatureLayerInfo.getMaxRecordCount()
. Service feature tables that
support pagination (ArcGISFeatureLayerInfo.isSupportsPagination()
)
are not subject to the maximum feature count limit.
A FenceGeotrigger
can also take into account floors within buildings. If the feature
table used to create the FeatureFenceParameters is referenced by a
FeatureLayer
that
is FloorAware
, and the
LocationDataSource
used to create the GeotriggerFeed
includes floor information, then fences will only be
entered when they are intersected by a location on the correct floor. If the fence or
location data does not include valid floor information, the floor is ignored and the fence
is entered when it is intersected by the location.
A floor aware feature layer or table must be part of a GeoModel
that includes a valid
GeoModelFloorDefinition
. All layers and tables that are used by the floor definition
are loaded when the GeotriggerMonitor
is started.
A Location
can contain floor property as part of
LocationDataSource.Location.getAdditionalSourceProperties()
.
- Since:
- 100.12.0
-
Constructor Summary
ConstructorDescriptionFeatureFenceParameters
(FeatureTable featureTable) Creates a FeatureFenceParameters using all of the features in theFeatureTable
.FeatureFenceParameters
(FeatureTable featureTable, double bufferDistance) Creates a FeatureFenceParameters using all of the features in theFeatureTable
. -
Method Summary
Modifier and TypeMethodDescriptionGets the geometry that can be used to spatially filter fences.Gets theFeatureTable
that contains the features to use in the FeatureFenceParameters.Gets a where clause that defines the features from theFeatureTable
to use as fences.void
setAreaOfInterest
(Geometry areaOfInterest) Sets the geometry that can be used to spatially filter fences.void
setWhereClause
(String whereClause) Sets a where clause that defines the features from theFeatureTable
to use as fences.Methods inherited from class com.esri.arcgisruntime.geotriggers.FenceParameters
createFromGeoElement, getBufferDistance
-
Constructor Details
-
FeatureFenceParameters
Creates a FeatureFenceParameters using all of the features in theFeatureTable
.- Parameters:
featureTable
- theFeatureTable
that contains the features to use in the FeatureFenceParameters- Throws:
IllegalArgumentException
- if featureTable is null- Since:
- 100.12.0
-
FeatureFenceParameters
Creates a FeatureFenceParameters using all of the features in theFeatureTable
.- Parameters:
featureTable
- theFeatureTable
that contains the features to use in the FeatureFenceParametersbufferDistance
- a buffer distance in meters to apply to the features when checking if aFenceGeotrigger
condition is met- Throws:
IllegalArgumentException
- if featureTable is null- Since:
- 100.12.0
-
-
Method Details
-
getAreaOfInterest
Gets the geometry that can be used to spatially filter fences.This needs to be either an
Envelope
orPolygon
. Use this to define which features in theFeatureTable
are to be used as fences by defining an area of interest. If this property is null we will use the full extent of the feature table.- Returns:
- the geometry that can be used to spatially filter fences, or null if none
- Since:
- 100.12.0
-
setAreaOfInterest
Sets the geometry that can be used to spatially filter fences.This needs to be either an
Envelope
orPolygon
. Use this to define which features in theFeatureTable
are to be used as fences by defining an area of interest. If this property is null we will use the full extent of the feature table.- Parameters:
areaOfInterest
- the geometry that can be used to spatially filter fences- Since:
- 100.12.0
-
getFeatureTable
Gets theFeatureTable
that contains the features to use in the FeatureFenceParameters.This table can be shared with a
FeatureLayer.getFeatureTable()
. This property will be null if theFeatureLayer
within a web map could not be found.- Returns:
- the
FeatureTable
that contains the features to use in the FeatureFenceParameters, or null if none - Since:
- 100.12.0
-
getWhereClause
Gets a where clause that defines the features from theFeatureTable
to use as fences.The string that is used as the
getWhereClause()
should follow standard SQL syntax similar to what is discussed in the document SQL reference for query expressions used in ArcGIS. The number of features fetched by querying an online table is limited by the layer'sArcGISFeatureLayerInfo.getMaxRecordCount()
. Service feature tables that support pagination (ArcGISFeatureLayerInfo.isSupportsPagination()
) are not subject to the maximum feature count limit.- Returns:
- a where clause that defines the features from the
FeatureTable
to use as fences - Since:
- 100.12.0
-
setWhereClause
Sets a where clause that defines the features from theFeatureTable
to use as fences.The string that is used as the
setWhereClause(String)
should follow standard SQL syntax similar to what is discussed in the document SQL reference for query expressions used in ArcGIS. The number of features fetched by querying an online table is limited by the layer'sArcGISFeatureLayerInfo.getMaxRecordCount()
. Service feature tables that support pagination (ArcGISFeatureLayerInfo.isSupportsPagination()
) are not subject to the maximum feature count limit.- Parameters:
whereClause
- a where clause that defines the features from theFeatureTable
to use as fences- Throws:
IllegalArgumentException
- if whereClause is null- Since:
- 100.12.0
-