# Class ClientSideIdentifyProvider`Abstract`

An identify provider that works with graphics rendered on the map.

#### Hierarchy (view full)

- IdentifyProviderBase
  - ClientSideIdentifyProvider
    - BuildingComponentSublayerClientSideIdentifyProvider
    - FeatureLayerClientSideIdentifyProvider
    - SceneLayerClientSideIdentifyProvider
    - StreamLayerClientSideQueryIdentifyProvider
    - SubtypeSublayerClientSideIdentifyProvider
    - WFSLayerClientSideIdentifyProvider

#####
Index

### Constructors

constructor

### Methods

_applyTolerance
_count
_createQuery
_getClientSideLayerGraphics
_identify
_identifyMany
count
identify
isSupported

##
Constructors

### constructor

- new ClientSideIdentifyProvider(): ClientSideIdentifyProvider

- #### Returns ClientSideIdentifyProvider

  Inherited from IdentifyProviderBase.constructor

##
Methods

### `Protected`_applyTolerance

- _applyTolerance(geometry, options?): Promise<GeometryUnion>

- Adds a tolerance to input geometries if configured in the options.

  #### Parameters

  - geometry: GeometryUnion

    The geometry to apply a tolerance to.

  - `Optional` options: IdentifyOptions

    The identify options object.

  #### Returns Promise<GeometryUnion>

  Inherited from IdentifyProviderBase._applyTolerance

### `Protected`_count

- _count(source, geometry, options, geometryType?): Promise<CountResult>

- Invoked to perform the actual work for count. Derived classes should override this method rather than count().

  #### Parameters

  - source: ClientSideQueryableSublayerExtension | ClientSideIdentifiableLayerExtension

    The source to identify.

  - geometry: Geometry

    The geometry to match against.

  - options: IdentifyOptions

    Options that affect the identify operation.

  - `Optional` geometryType: string

    The geometry type before a tolerance buffer is applied.

  #### Returns Promise<CountResult>

  Overrides IdentifyProviderBase._count

### `Protected`_createQuery

- _createQuery(source, geometry, options, aggregateIds?): Query

- Creates a query object that gets passed into the LayerView.queryFeatures() function.

  #### Parameters

  - source: ClientSideQueryableSublayerExtension | ClientSideIdentifiableLayerExtension

    The source to query.

  - geometry: Geometry

    The geometry to query with.

  - options: IdentifyOptions

    Options for the query.

  - `Optional` aggregateIds: (string | number)[]

    The ObjectIds of cluster features to query with.

  #### Returns Query

### `Protected`_getClientSideLayerGraphics

- _getClientSideLayerGraphics(source, geometry, options, geometryType?): Promise<Graphic[]>

- #### Parameters

  - source: ClientSideQueryableSublayerExtension | ClientSideIdentifiableLayerExtension
  - geometry: Geometry
  - options: IdentifyOptions
  - `Optional` geometryType: string

  #### Returns Promise<Graphic[]>

### `Protected`_identify

- _identify(source, geometry, options, geometryType?): AsyncIterable<Feature, any, any>

- Invoked to perform the actual work for identify on a single source. Derived classes should override this method rather than identify().

  #### Parameters

  - source: ClientSideQueryableSublayerExtension | ClientSideIdentifiableLayerExtension

    The source to identify.

  - geometry: Geometry

    The geometry to match against.

  - options: IdentifyOptions

    Options that affect the identify operation.

  - `Optional` geometryType: string

    The geometry type before a tolerance buffer is applied.

  #### Returns AsyncIterable<Feature, any, any>

  Overrides IdentifyProviderBase._identify

### `Protected`_identifyMany

- _identifyMany(sources, geometry, options, geometryType?): AsyncIterable<Feature, any, any>

- Invoked to perform the work for identify. Default implementation calls _identify for each source. Derived classes can override this method to implement special handling for multiple sources.

  #### Parameters

  - sources: FeatureSource[]

    The sources to identify.

  - geometry: GeometryUnion

    The geometry to match against.

  - options: IdentifyOptions

    Options that affect the identify operation.

  - `Optional` geometryType: string

    The geometry type before a tolerance buffer is applied.

  #### Returns AsyncIterable<Feature, any, any>

  Inherited from IdentifyProviderBase._identifyMany

### count

- count(source, geometry, options?): Promise<CountResult>

- Counts features in a given source that intersect the given geometry.

  #### Parameters

  - source: FeatureSource

    The source to identify.

  - geometry: GeometryUnion

    The geometry to match against.

  - `Optional` options: IdentifyOptions

    Options that affect the identify operation.

  #### Returns Promise<CountResult>

  An iterable of tasks/CountResult!CountResults containing count results. If canceled, the provider may reject the returned promise with an instance of support/Cancellable!Cancellation, though it may still fulfill with count results instead.

  Inherited from IdentifyProviderBase.count

### identify

- identify(source, geometry, options?): AsyncIterable<Feature, any, any>

- Identifies features in a given source that intersect the given geometry.

  #### Parameters

  - source: FeatureSource | FeatureSource[]

    The source to identify.

  - geometry: GeometryUnion

    The geometry to match against.

  - `Optional` options: IdentifyOptions

    Options that affect the identify operation.

  #### Returns AsyncIterable<Feature, any, any>

  An iterable of data/Feature!Features containing identify results. If canceled, the provider may reject the returned promise with an instance of support/Cancellable!Cancellation, though it may still fulfill with results instead.

  Inherited from IdentifyProviderBase.identify

### `Abstract` isSupported

- isSupported(source, geometry, options?): boolean

- Determines whether this provider can handle identify operations for the given feature source.

  #### Parameters

  - source: FeatureSource

    The feature source.

  - geometry: GeometryUnion
  - `Optional` options: IdentifyOptions

  #### Returns boolean

  Inherited from IdentifyProviderBase.isSupported