Geoprocessor
require(["esri/tasks/Geoprocessor"], function(Geoprocessor) { /* code goes here */ });
esri/tasks/Geoprocessor
Represents a GP Task resource exposed by the ArcGIS REST API. A GP Task resource represents a single task in a GP service published using the ArcGIS Server and it supports one of the following operations dependent on how the service was set up:
- execute - for when the execution type is synchronous.
- submitJob - for when the execution type is asynchronous.
If processExtent
is not set then execute
and submitJob
will format web requests compatiable with ArcGIS version prior to 10.6.1.
Constructors
- new Geoprocessor(properties)
- Parameter:properties Objectoptional
See the properties for a list of all the properties that may be passed into the constructor.
Property Overview
Name | Type | Summary | Class | |
---|---|---|---|---|
String | The name of the class. more details | more details | Accessor | |
SpatialReference | The spatial reference of the output geometries. more details | more details | Geoprocessor | |
Extent | ProcessExtent, if specified, will only process features that overlap this extent. more details | more details | Geoprocessor | |
SpatialReference | The spatial reference that the model will use to perform geometry operations. more details | more details | Geoprocessor | |
Object | The options to be used for data requests. more details | more details | Task | |
Boolean | If | more details | Geoprocessor | |
Boolean | If | more details | Geoprocessor | |
String | ArcGIS Server Rest API endpoint to the resource that receives the geoprocessing request. more details | more details | Geoprocessor |
Property Details
- Since: ArcGIS API for JavaScript 4.7
The name of the class. The declared class name is formatted as
esri.folder.className
.
- outSpatialReference SpatialReferenceautocast
The spatial reference of the output geometries. If not specified, the output geometries will be in the spatial reference of the input geometries. If processSpatialReference is specified and
outSpatialReference
is not specified, the output geometries will be in the spatial reference of the process spatial reference.- Default Value:null
- Since: ArcGIS API for JavaScript 4.13
ProcessExtent, if specified, will only process features that overlap this extent.
- Default Value:null
- processSpatialReference SpatialReferenceautocast
The spatial reference that the model will use to perform geometry operations. If
processSpatialReference
is specified and outputSpatialReference is not specified, the output geometries will be in the spatial reference of the process spatial reference.A possible common scenario for using
processSpatialReference
andoutputSpatialReference
is that you would like to perform spatial operations like buffer or clip on a projected coordinate system such as web mercator. And you would like to recieve the output based on a geographic coordinates such as WGS84.- Default Value:null
The options to be used for data requests. These options can also be controlled through the
requestOptions
method parameter.
- returnM BooleanSince: ArcGIS API for JavaScript 4.13
If
true
, m-values will be included in the results if the features have m-values. Otherwise, m-values are not returned. The default is false.- Default Value:false
- returnZ BooleanSince: ArcGIS API for JavaScript 4.13
If
true
, z-values will be included in the results if the features have z-values. Otherwise, z-values are not returned. The default is false.- Default Value:false
- url String
ArcGIS Server Rest API endpoint to the resource that receives the geoprocessing request.
Method Overview
Name | Return Type | Summary | Class | |
---|---|---|---|---|
Promise<JobInfo> | Cancels an asynchronous geoprocessing job. more details | more details | Geoprocessor | |
Promise<JobInfo> | Sends a request to the GP Task for the current state of the job identified by | more details | Geoprocessor | |
Promise<Object> | Sends a request to the server to execute a synchronous GP task. more details | more details | Geoprocessor | |
Promise<ParameterValue> | Sends a request to the GP Task to get the task result identified by | more details | Geoprocessor | |
Promise<ParameterValue> | Sends a request to the GP Task to get the task result identified by | more details | Geoprocessor | |
Promise<MapImageLayer> | Get the task result identified by | more details | Geoprocessor | |
Promise<JobInfo> | Submits a job to the server for asynchronous processing by the GP task. more details | more details | Geoprocessor | |
Promise<JobInfo> | Resolves when an asynchronous job has completed. more details | more details | Geoprocessor |
Method Details
Cancels an asynchronous geoprocessing job. Requires an ArcGIS Server 10.1 service or greater.
Parameters:jobId StringA string that uniquely identifies a job on the server. It is created when a job is submitted for execution and later used to check its status and retrieve the results.
requestOptions ObjectoptionalAdditional options to be used for the data request (will override requestOptions defined during construction).
Returns:Type Description Promise<JobInfo> When resolved, returns a JobInfo.
Sends a request to the GP Task for the current state of the job identified by
jobId
.Parameters:jobId StringThe jobId returned from JobInfo.
requestOptions ObjectoptionalAdditional options to be used for the data request (will override requestOptions defined during construction).
Returns:Type Description Promise<JobInfo> When resolved, returns a JobInfo.
Sends a request to the server to execute a synchronous GP task.
Parameters:params ObjectSpecifies the input parameters accepted by the task and their corresponding values. These input parameters are listed in the parameters field of the associated GP Task resource. For example, assume that a GP Task resource has the following input parameters:
<GPFeatureRecordSetLayer>
Input_Points<GPDouble>
Distance
The
params
argument would then be an Object of the form:{ Input_Points: <FeatureSet>, Distance: <Number> }
requestOptions ObjectoptionalAdditional options to be used for the data request (will override requestOptions defined during construction).
Returns:Type Description Promise<Object> When resolved, returns an object with the following properties:
See the GPMessage and ParameterValue classes for more information about the information in this object.{ messages: <GPMessage[]>, results: <ParameterValue[]> }
- getResultData(jobId, resultName, requestOptions){Promise<ParameterValue>}
Sends a request to the GP Task to get the task result identified by
jobId
andresultName
.Parameters:jobId StringThe jobId returned from JobInfo.
resultName StringThe name of the result parameter as defined in Services Directory.
requestOptions ObjectoptionalAdditional options to be used for the data request (will override requestOptions defined during construction).
Returns:Type Description Promise<ParameterValue> When resolved, returns an object with a property named result
of type ParameterValue, which contains the result parameters and the task execution messages.
- getResultImage(jobId, resultName, imageParams, requestOptions){Promise<ParameterValue>}
Sends a request to the GP Task to get the task result identified by
jobId
andresultName
as an image.Parameters:jobId StringThe jobId returned from JobInfo.
resultName StringThe name of the result parameter as defined in the Services Directory.
imageParams ImageParametersSpecifies the properties of the result image.
requestOptions ObjectoptionalAdditional options to be used for the data request (will override requestOptions defined during construction).
Returns:Type Description Promise<ParameterValue> When resolved, returns an Object with a mapImage
property of type MapImage
- getResultMapImageLayer(jobId){Promise<MapImageLayer>}Since: ArcGIS API for JavaScript 4.1
Get the task result identified by
jobId
as an MapImageLayer.Parameter:jobId StringThe jobId returned from JobInfo.
Returns:Type Description Promise<MapImageLayer> A promise resolving to an instance of MapImageLayer. Example:// Get the resulting map image layer from a completed geoprocessing job. geoprocessor.getResultMapImageLayer(jobInfo.jobId)).then(function(layer){ view.map.add(layer); });
Submits a job to the server for asynchronous processing by the GP task. The method will resolve immediately after the job has been submitted to the server. Use waitForJobCompletion() to be notified when the job has completed and optionally periodic job status.
The task execution results can be retrieved using the getResultData(), getResultImage(), or getResultMapImageLayer() methods.
Parameters:params Objectspecifies the input parameters accepted by the task and their corresponding values. These input parameters are listed in the parameters field of the associated GP Task resource. For example, assume that a GP Task resource has the following input parameters:
<GPFeatureRecordSetLayer>
Input_Points<GPDouble>
Distance
The
params
argument would then be an Object of the form:{ Input_Points: <FeatureSet>, Distance: <Number> }
requestOptions ObjectoptionalAdditional options to be used for the data request (will override requestOptions defined during construction).
Returns:Type Description Promise<JobInfo> When resolved, returns a JobInfo.
- Since: ArcGIS API for JavaScript 4.13
Resolves when an asynchronous job has completed. Optionally job progress can be monitored.
Parameters:Specification:jobId StringThe jobId returned from JobInfo.
options ObjectoptionalOptions. See properties below for object specifications.
Specification:interval ObjectoptionalDefault Value: 1000The time in millisecond between remote job status requests.
signal ObjectoptionalAbortSignal allows for cancelable asynchronous job. If canceled, the promise will be rejected with an error named
AbortError
.statusCallback ObjectoptionalCallback function that is called at the specified interval. Use this method to monitor job status and messages.
Returns:Type Description Promise<JobInfo> When resolved, returns a JobInfo. Example:// Submit an asynchronous geoprocessing job. Display the remote job status every 1.5 seconds. // When the job has completed at the output as a MapImageLayer. var startDate = "1998-01-01 00:00:00"; var endDate = "1998-05-31 00:00:00"; var params = { query: "(Date >= date '" + startDate + "' and Date <= date '" + endDate + "')" }; var geoprocessor = new Geoprocessor({ url: "https://sampleserver6.arcgisonline.com/arcgis/rest/services/911CallsHotspot/GPServer/911%20Calls%20Hotspot", outSpatialReference: SpatialReference.WebMercator }); geoprocessor.submitJob(params).then(function(jobInfo) { var jobid = jobInfo.jobId; var options = { interval: 1500, statusCallback: function(j) { console.log("Job Status: ", j.jobStatus); } }; geoprocessor.waitForJobCompletion(jobid, options).then(function() { var layer = geoprocessor.getResultMapImageLayer(jobid); map.add(layer); } }