Presents information on a set of Geotrigger objects defined for a GeoModel. More...
Header: | #include <GeotriggersInfo.h> |
Since: | Esri::ArcGISRuntime 100.14 |
Inherits: | Esri::ArcGISRuntime::Object and Esri::ArcGISRuntime::Loadable |
Public Functions
virtual | ~GeotriggersInfo() override |
Esri::ArcGISRuntime::GeotriggerListModel * | geotriggers() const |
Reimplemented Public Functions
virtual void | cancelLoad() override |
virtual void | load() override |
virtual Esri::ArcGISRuntime::Error | loadError() const override |
virtual Esri::ArcGISRuntime::LoadStatus | loadStatus() const override |
virtual void | retryLoad() override |
Signals
void | doneLoading(const Esri::ArcGISRuntime::Error &loadError) |
void | loadStatusChanged(Esri::ArcGISRuntime::LoadStatus loadStatus) |
Detailed Description
The author of a Map or a Scene can optionally specify one or more Geotrigger conditions to be monitored when using the data. Once this type is loaded, review the list of geotriggers and create a GeotriggerMonitor to monitor each.
When a Geotrigger is defined with a GeotriggerFeed of type LocationGeotriggerFeed, you must supply a AbstractLocationDataSource to provide your device location. The general workflow is as follows:
- Get the GeotriggersInfo from the GeoModel::geotriggersInfo property.
- Load the GeotriggersInfo to populate the geotriggers list.
- For each Geotrigger in the list, check whether the Geotrigger::feed is of type LocationGeotriggerFeed.
- Set the LocationGeotriggerFeed::locationDataSource to your AbstractLocationDataSource - for example, using the LocationDisplay::dataSource.
- Create a GeotriggerMonitor for each Geotrigger you want to use.
- Connect to notifications sent by the GeotriggerMonitor.
- Call GeotriggerMonitor::startAsync to begin monitoring.
Geotriggers can also take into account floors within buildings. If the GeotriggersInfo is defined as part of a GeoModel that includes a valid GeoModelFloorDefinition, then the list of geotriggers can take floor information into account. All layers and tables that are used by the floor definition are loaded when a floor aware GeotriggerMonitor is started. To take floors into account when monitoring geotriggers, use an AbstractLocationDataSource that includes floor details, such as the IndoorsLocationDataSource.
Member Function Documentation
[override virtual]
GeotriggersInfo::~GeotriggersInfo ()
Destructor.
[override virtual]
void GeotriggersInfo::cancelLoad ()
Reimplements: Loadable::cancelLoad().
Cancels loading metadata for the object.
[signal]
void GeotriggersInfo::doneLoading (const Esri::ArcGISRuntime::Error &loadError )
Signal emitted when this object is done loading.
- loadError Details about any error that may have occurred.
Note: If there is a load error it will also be emitted on the errorOccurred signal.
Esri::ArcGISRuntime::GeotriggerListModel *GeotriggersInfo::geotriggers() const
Returns the set of Geotrigger objects defined for a GeoModel.
This list is populated with Geotrigger conditions defined by the author of the map or scene when the GeotriggersInfo is LoadStatus::Loaded. If no geotriggers are defined, this list will remain empty.
You can add your own geotriggers to this property but be aware that when you save the map or scene any Geotrigger objects that reference local data (for example a GraphicsOverlayFenceParameters) will be omitted.
[override virtual]
void GeotriggersInfo::load()
Reimplements: Loadable::load().
Loads the metadata for the object asynchronously.
[override virtual]
Esri::ArcGISRuntime::Error GeotriggersInfo::loadError () const
Reimplements: Loadable::loadError() const.
Returns the load error.
See also Error.
[override virtual]
Esri::ArcGISRuntime::LoadStatus GeotriggersInfo::loadStatus () const
Reimplements: Loadable::loadStatus() const.
Returns the load status.
See also LoadStatus.
[signal]
void GeotriggersInfo::loadStatusChanged (Esri::ArcGISRuntime::LoadStatus loadStatus )
Signal emitted when the load status changes for this object.
- loadStatus The LoadStatus.
See also Loadable.
[override virtual]
void GeotriggersInfo::retryLoad ()
Reimplements: Loadable::retryLoad().
Loads or retries loading metadata for the object asynchronously.
Will retry loading the metadata if the object is failed to load. Will load the object if it is not loaded. Will not retry to load the object if the object is loaded. Will always call the done loading if this is called.