Class FeatureFenceParameters


  • public class FeatureFenceParameters
    extends FenceParameters
    Geotrigger fence data created from features.

    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.

    When saving new geotriggers into a web map, ensure all feature layers are assigned a unique Layer.getId(). This ensures the saved getFeatureTable() is associated with the corresponding layer. When the saved ArcGISMap and GeoModel.getGeotriggersInfo() are loaded, the layer and geotrigger will use the same FeatureTable.

    Since:
    100.12.0
    • Constructor Detail

      • FeatureFenceParameters

        public FeatureFenceParameters​(FeatureTable featureTable)
        Creates a FeatureFenceParameters using all of the features in the FeatureTable.
        Parameters:
        featureTable - the FeatureTable that contains the features to use in the FeatureFenceParameters
        Throws:
        java.lang.IllegalArgumentException - if featureTable is null
        Since:
        100.12.0
      • FeatureFenceParameters

        public FeatureFenceParameters​(FeatureTable featureTable,
                                      double bufferDistance)
        Creates a FeatureFenceParameters using all of the features in the FeatureTable.
        Parameters:
        featureTable - the FeatureTable that contains the features to use in the FeatureFenceParameters
        bufferDistance - a buffer distance in meters to apply to the features when checking if a FenceGeotrigger condition is met
        Throws:
        java.lang.IllegalArgumentException - if featureTable is null
        Since:
        100.12.0
    • Method Detail

      • getAreaOfInterest

        public Geometry getAreaOfInterest()
        Gets the geometry that can be used to spatially filter fences.

        This needs to be either an Envelope or Polygon. Use this to define which features in the FeatureTable 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

        public void setAreaOfInterest​(Geometry areaOfInterest)
        Sets the geometry that can be used to spatially filter fences.

        This needs to be either an Envelope or Polygon. Use this to define which features in the FeatureTable 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

        public FeatureTable getFeatureTable()
        Gets the FeatureTable that contains the features to use in the FeatureFenceParameters.
        Returns:
        the FeatureTable that contains the features to use in the FeatureFenceParameters
        Since:
        100.12.0