ArcGIS Runtime SDK for iOS
100.15
|
An AGSGeotriggerMonitor
monitors an AGSGeotrigger
condition and, when it is met, results in an AGSGeotriggerNotificationInfo
.
An AGSGeotrigger
defines a query that is evaluated against GIS data as it changes in real time. For example, "Notify me when my device location enters one of my
target areas" or "Notify me when my device location is within 50 m of my destination".
An AGSGeotriggerMonitor
is created with an AGSGeotrigger
that it continually checks to determine whether the condition has been met.
Once an AGSGeotriggerMonitor
is created, you begin checking the condition by calling startWithCompletion: (AGSGeotriggerMonitor)
. Once you are finished, call stop (AGSGeotriggerMonitor)
. When an AGSGeotrigger
evaluates to YES
, an AGSGeotriggerMonitorDidTriggerNotification
is sent via the default notification center.
To receive details of where the AGSGeotrigger
was activated and the condition that was met, add an observer to the default notification center (NSNotificationCenter
). The userInfo
dictionary of the posted notification info will contain an AGSGeotriggerNotificationInfo
object with key: AGSGeotriggerNotificationInfoKey
that has the notification details.
Instance Methods | |
(instancetype) | - initWithGeotrigger: |
(id< AGSCancelable >) | - startWithCompletion: |
(void) | - stop |
Class Methods | |
(instancetype) | + geotriggerMonitorWithGeotrigger: |
Properties | |
AGSGeotrigger * | geotrigger |
AGSGeotriggerMonitorStatus | status |
NSError * | warning |
+ (instancetype) geotriggerMonitorWithGeotrigger: | (AGSGeotrigger *) | geotrigger |
Instantiates an AGSGeotriggerMonitor
with an AGSGeotrigger
condition.
geotrigger | The AGSGeotrigger which will be monitored. |
- (instancetype) initWithGeotrigger: | (AGSGeotrigger *) | geotrigger |
Instantiates an AGSGeotriggerMonitor
with an AGSGeotrigger
condition.
geotrigger | The AGSGeotrigger which will be monitored. |
- (id<AGSCancelable>) startWithCompletion: | (nullable void(^)(NSError *_Nullable error)) | completion |
Starts evaluating the AGSGeotriggerMonitor
.
When the AGSGeotriggerMonitor
is successfully performing checks, the AGSGeotriggerMonitor::status
will be AGSGeotriggerMonitorStatusStarted
.
completion | The error parameter is populated on failure. |
- (void) stop |
Stops evaluating the AGSGeotriggerMonitor
.
Stopping the AGSGeotriggerMonitor
prevents the condition from being evaluated and notifications from being sent. If you are using an AGSLocationGeotriggerFeed
created from an AGSLocationDataSource
, the data source must also be stopped to turn off GPS receivers etc.
When the AGSGeotriggerMonitor
is stopped, the AGSGeotriggerMonitor::status
will be AGSGeotriggerMonitorStatusStopped
.
|
readnonatomicstrong |
The AGSGeotrigger
that will be monitored.
|
readnonatomicassign |
The current monitoring status of the AGSGeotriggerMonitor
.
An AGSGeotriggerMonitor
begins with a monitoring status of AGSGeotriggerMonitorStatusStopped
and changes to AGSGeotriggerMonitorStatusStarted
when you call AGSGeotriggerMonitor::startWithCompletion
. When you call stop
, the monitoring status changes to AGSGeotriggerMonitorStatusStopped
.
|
readnonatomicstrong |
An error that describes a problem encountered while starting or monitoring the AGSGeotrigger
.
A warning can occur at various stages of monitoring an AGSGeotrigger:
AGSGeotriggerMonitor
AGSGeotrigger
such as the AGSGeotriggerFeed
If the problem is resolved, this property will be cleared.
Problems that occur when starting the AGSGeotriggerMonitor
result in an AGSGeotriggerMonitor::status
of AGSGeotriggerMonitorStatusFailedToStart
. These issues must be fixed and start called again before you receive any notifications. For example, if the AGSGeotrigger::messageExpression
is an invalid AGSArcadeExpression
, monitoring cannot be carried out.
Problems that occur when accessing the components of the AGSGeotrigger
will not prevent the AGSGeotriggerMonitor
from starting. However, until the problem is resolved, you will not receive any notifications. For example, if an AGSLocationGeotriggerFeed
uses an AGSLocationDataSource
that is not started, you will not receive any notifications. Once the AGSLocationDataSource
is successfully started, monitoring will resume. If an AGSFenceParameters
has no valid data for a fence you will not receive any notifications.
Problems that occur during ongoing monitoring relate to issues with individual objects such as the graphics that make up the fences for an AGSGraphicFenceParameters
. These warnings do not prevent notifications from being sent for other valid fences. For example, a fence is considered invalid if it has:
AGSGeometry
AGSSpatialReference
AGSGeometry
and a buffer distance of 0