Skip to main content

Tasks Overview

Tasks provide chainable operations for querying and analyzing Esri services, modeled after Esri Leaflet's task pattern.

Pattern

Tasks follow a create → configure → execute pattern:

const results = await new IdentifyFeatures({ url: '...' })
.layers([0, 1, 2])
.tolerance(5)
.returnGeometry(true)
.at({ lng: -95, lat: 37 }, map);

Available Tasks

TaskDescription
IdentifyFeaturesIdentify features at a point across map services
IdentifyImageGet pixel values from image services
QuerySpatial and attribute queries with pagination
FindText-based search across layers and fields

Task vs Service Methods

AspectTaskService Method
FlexibilityHighly configurableBasic options
ChainingFluent APISingle call
ReusabilityReusable instancesOne-time use

Common Patterns

Reusable Tasks

const queryTask = new Query({ url: '...' })
.outFields(['*'])
.returnGeometry(true);

const all = await queryTask.where('1=1').run();
const filtered = await queryTask.where('POP > 100000').run();

Error Handling

try {
const results = await task.run();
} catch (error) {
console.error('Task failed:', error.message);
}