A task to find a least-cost route between facilities and incidents. More...
Header: | #include <ClosestFacilityTask.h> |
Since: | Esri::ArcGISRuntime 100.1 |
Inherits: | Esri::ArcGISRuntime::Object, Esri::ArcGISRuntime::ApiKeyResource, Esri::ArcGISRuntime::Loadable, and Esri::ArcGISRuntime::RemoteResource |
Public Functions
ClosestFacilityTask(const QString &databasePath, const QString &networkName, QObject *parent = nullptr) | |
ClosestFacilityTask(const QUrl &url, Esri::ArcGISRuntime::Credential *credential, QObject *parent = nullptr) | |
ClosestFacilityTask(const QUrl &url, QObject *parent = nullptr) | |
ClosestFacilityTask(Esri::ArcGISRuntime::TransportationNetworkDataset *transportationNetworkDataset, QObject *parent = nullptr) | |
virtual | ~ClosestFacilityTask() override |
Esri::ArcGISRuntime::ClosestFacilityTaskInfo | closestFacilityTaskInfo() const |
QFuture<Esri::ArcGISRuntime::ClosestFacilityParameters> | createDefaultParametersAsync() |
Esri::ArcGISRuntime::TransportationNetworkDataset * | transportationNetworkDataset() const |
Reimplemented Public Functions
virtual QString | apiKey() const override |
virtual void | cancelLoad() override |
virtual Esri::ArcGISRuntime::Credential * | credential() const override |
virtual void | load() override |
virtual Esri::ArcGISRuntime::Error | loadError() const override |
virtual Esri::ArcGISRuntime::LoadStatus | loadStatus() const override |
virtual Esri::ArcGISRuntime::RequestConfiguration | requestConfiguration() const override |
virtual void | retryLoad() override |
virtual void | setApiKey(const QString &apiKey) override |
virtual void | setRequestConfiguration(const Esri::ArcGISRuntime::RequestConfiguration &requestConfiguration) override |
virtual QUrl | url() const override |
Signals
void | doneLoading(const Esri::ArcGISRuntime::Error &loadError) |
void | loadStatusChanged(Esri::ArcGISRuntime::LoadStatus loadStatus) |
Detailed Description
The closest facility task class uses a transportation network to measure the cost of traveling between incidents and facilities and determines which are nearest to one other in terms of cost. When finding closest facilities, you can specify how many to find and whether the direction of travel is toward or away from them. You can also provide impedance attributes to be considered when calculating route cost. ClosestFacilityTask is executed asynchronously. A successful execution returns a ClosestFacilityResult instance with details about the closest facility route.
The closest facility task works in an online connected scenario by using a transportation network that is published to ArcGIS Server as an online Network Analyst closest facility service. Esri also provides ready-to-use services, such as the Directions and Routing Services, which requires authentication with an ArcGIS organizational account. In connected scenarios, provide a URL to the REST endpoint of the service, along with any necessary credentials.
Relevant samples:
- Find closest facility to an incident (interactive): Find a route to the closest facility from a location.
- Find closest facility to multiple incidents (service): Find routes from several locations to the respective closest facility.
See also Loadable and Closest Facility REST API documentation.
Member Function Documentation
[since Esri::ArcGISRuntime 100.2]
ClosestFacilityTask::ClosestFacilityTask (const QString &databasePath , const QString &networkName , QObject *parent = nullptr)
Creates a closest facility task with path to geodatabase.
- databasePath - A path to geodatabase.
- networkName - A network name.
- parent - The optional parent QObject.
This function was introduced in Esri::ArcGISRuntime 100.2.
ClosestFacilityTask::ClosestFacilityTask (const QUrl &url, Esri::ArcGISRuntime::Credential *credential, QObject *parent = nullptr)
Constructor that takes a url to a secured Network Analysis service endpoint and a credential, with an optional parent.
[explicit]
ClosestFacilityTask::ClosestFacilityTask (const QUrl &url, QObject *parent = nullptr)
Constructor that takes a url to a Network Analysis service endpoint with an optional parent.
[explicit, since Esri::ArcGISRuntime 100.2]
ClosestFacilityTask::ClosestFacilityTask (Esri::ArcGISRuntime::TransportationNetworkDataset *transportationNetworkDataset , QObject *parent = nullptr)
Creates a closest facility task with transportation network dataset.
- transportationNetworkDataset - A transportation network dataset.
- parent - The optional parent QObject.
This function was introduced in Esri::ArcGISRuntime 100.2.
[override virtual]
ClosestFacilityTask::~ClosestFacilityTask ()
Destructor.
[override virtual, since Esri::ArcGISRuntime 100.10]
QString ClosestFacilityTask::apiKey () const
Reimplements: ApiKeyResource::apiKey() const.
Returns the API key allows your app to access ArcGIS location services and private portal items.
An API key is a unique long-lived access token that is used to authenticate and monitor requests to ArcGIS location services and private portal items. You can create and manage an API key using your portal when you sign in with an ArcGIS Location Platform account or an ArcGIS Online account with administrator access or a custom role that has the `Generate API keys` privilege. To learn how to create and manage API keys, go to the Create an API Key tutorial. You must ensure that your API key has the correct privileges to access secure resources.
Note: An API key created with a referrer is not supported. If you need service requests to include the referrer, use the SDK's functionality to intercept the request and add an HTTP referer header.
In addition to setting an ArcGISRuntimeEnvironment::apiKey at a global level for your application, you can set it on any class that implements ApiKeyResource. This overrides the ArcGISRuntimeEnvironment::apiKey and enables more granular usage telemetry and management of ArcGIS location resources used by your app.
Classes that expose an API key property by implementing ApiKeyResource include:
- ArcGISSceneLayer
- ArcGISTiledLayer
- ArcGISVectorTiledLayer
- Basemap
- BasemapStylesService
- ClosestFacilityTask
- ExportTileCacheTask
- ExportVectorTilesTask
- GeodatabaseSyncTask
- LocatorTask
- RouteTask
- ServiceAreaTask
- ServiceFeatureTable
For more information, see API key authentication and Types of authentication.
This function was introduced in Esri::ArcGISRuntime 100.10.
See also setApiKey().
[override virtual]
void ClosestFacilityTask::cancelLoad ()
Reimplements: Loadable::cancelLoad().
See Loadable.
Esri::ArcGISRuntime::ClosestFacilityTaskInfo ClosestFacilityTask::closestFacilityTaskInfo () const
Returns closest facility task info.
Information about this closest facility task. For a closest facility task using an online service, this will involve a network call.
[since Esri::ArcGISRuntime 200.2]
QFuture<Esri::ArcGISRuntime::ClosestFacilityParameters > ClosestFacilityTask::createDefaultParametersAsync ()
Returns the default parameters.
Retrieves the default parameters as defined by the service.
This method returns a QFuture for the asynchronous operation. Use future.then() to continue processing when the operation completes. Use future.onFailed() to handle exceptions of type ErrorException.
See Working with QFuture for further details.
This function was introduced in Esri::ArcGISRuntime 200.2.
[override virtual]
Esri::ArcGISRuntime::Credential *ClosestFacilityTask::credential() const
Reimplements: RemoteResource::credential() const.
Returns the security credential used to access the closest facility service.
Only applicable if using an online service that is secured.
[signal]
void ClosestFacilityTask::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.
[override virtual]
void ClosestFacilityTask::load()
Reimplements: Loadable::load().
See Loadable.
[override virtual]
Esri::ArcGISRuntime::Error ClosestFacilityTask::loadError () const
Reimplements: Loadable::loadError() const.
See Loadable.
[override virtual]
Esri::ArcGISRuntime::LoadStatus ClosestFacilityTask::loadStatus () const
Reimplements: Loadable::loadStatus() const.
See Loadable.
[signal]
void ClosestFacilityTask::loadStatusChanged (Esri::ArcGISRuntime::LoadStatus loadStatus )
Signal emitted when the load status changes for this object.
- loadStatus - The LoadStatus.
See also Loadable.
[override virtual, since Esri::ArcGISRuntime 100.1]
Esri::ArcGISRuntime::RequestConfiguration ClosestFacilityTask::requestConfiguration () const
Reimplements: RemoteResource::requestConfiguration() const.
Returns the RequestConfiguration in use by this task.
This function was introduced in Esri::ArcGISRuntime 100.1.
See also setRequestConfiguration().
[override virtual]
void ClosestFacilityTask::retryLoad ()
Reimplements: Loadable::retryLoad().
See Loadable.
[override virtual, since Esri::ArcGISRuntime 100.10]
void ClosestFacilityTask::setApiKey (const QString &apiKey )
Reimplements: ApiKeyResource::setApiKey(const QString &apiKey).
Sets the API key to apiKey.
This function was introduced in Esri::ArcGISRuntime 100.10.
See also apiKey().
[override virtual, since Esri::ArcGISRuntime 100.1]
void ClosestFacilityTask::setRequestConfiguration (const Esri::ArcGISRuntime::RequestConfiguration &requestConfiguration )
Reimplements: RemoteResource::setRequestConfiguration(const Esri::ArcGISRuntime::RequestConfiguration &requestConfiguration).
Sets configuration parameters used for network requests sent by this task to requestConfiguration.
This function was introduced in Esri::ArcGISRuntime 100.1.
See also requestConfiguration().
[since Esri::ArcGISRuntime 100.2]
Esri::ArcGISRuntime::TransportationNetworkDataset *ClosestFacilityTask::transportationNetworkDataset () const
Returns transportation network dataset.
This function was introduced in Esri::ArcGISRuntime 100.2.
See also transportationNetworkDataset.
[override virtual]
QUrl ClosestFacilityTask::url() const
Reimplements: RemoteResource::url() const.
Returns the URL to the online service.
Only applicable to online closest facility.