# Class Geocoder<TProperties>`Abstract`

A geocoder (service that can lookup features by address).

#### Type Parameters

- TProperties extends GeocoderProperties = GeocoderProperties

#### Hierarchy (view full)

- FeatureSourceBase<TProperties>
  - Geocoder
    - ArcGISGeocoder

#####
Index

### Constructors

constructor

### Properties

_capabilitiesInternal
_id
_itemType
@eventTypes
addressSchema
defaultAddressValues
iconUrl?
onAddFeature?
onEditFeature?
queryService?
title

### Accessors

capabilities
failureMode
featureActions
featureSettings
featureSourceActions
hyperlinks
id
isDestroyed
isInitialized
itemType
relationships
schema
taskSettings

### Methods

_addAttachment
_addFeatures
_capabilities
_createAddressSchema
_createFeatureSettings
_createHyperlinks
_createRelationships
_createSchema
_createTaskSettings
_deleteAttachments
_deleteFeatures
_getAttachments
_getFeatures
_getSerializableProperties
_initializableChildCollections
_initializeChildren
_isRelationship
_onDestroy
_onInitialize
_postInitialize
_toPropertyDef
_updateFeatures
addAttachment
addFeature
addFeatures
assignProperties
assignPropertiesAsync
batchGeocode
count
deleteAttachments
deleteFeature
deleteFeatures
destroy
finishAssignProperties
geocode
getAttachments
getDefault
getDefaults
getFeature
getFeatures
getFullExtent
getSerializableProperties
initialize
reverseGeocode
suggest
toItemUri
toJSON
updateFeature
updateFeatures

##
Constructors

### constructor

- new Geocoder<TProperties>(properties?): Geocoder<TProperties>

- #### Type Parameters

  - TProperties extends GeocoderProperties = GeocoderProperties

  #### Parameters

  - `Optional` properties: TProperties

  #### Returns Geocoder<TProperties>

  Overrides FeatureSourceBase.constructor

##
Properties

### `Protected`_capabilitiesInternal

_capabilitiesInternal: GeocoderCapabilities = ...

The default capabilities for a geocoder.

### `Protected`_id

_id: string

The unique ID for this entity. Once set, this should never change.

Inherited from FeatureSourceBase._id

### `Protected` `Readonly`_itemType

_itemType: string = ItemType.GEOCODER

The item type for this entity when it participates in an App.

Overrides FeatureSourceBase._itemType

### @eventTypes

@eventTypes: InitializableBaseEvents

#### Deprecated

Do not directly reference this property. Use EventNames and EventTypes helpers from @arcgis/core/Evented.

Inherited from FeatureSourceBase.@eventTypes

### `Readonly` addressSchema

addressSchema: Schema

The schema that defines the input address fields.

### `Readonly` defaultAddressValues

defaultAddressValues: Map<string, unknown>

Default address field values to use when they are missing in the input address. For instance, if a geocoder has a "City" input field, then setting its default value to "Victoria" would cause the geocoder to search for addresses within the city of Victoria by default if no city is specified.

### `Optional` iconUrl

iconUrl?: string

URL to an icon that represents this feature source.

Inherited from FeatureSourceBase.iconUrl

### `Optional` onAddFeature

onAddFeature?: Action

The action to be executed when a feature is added.

Inherited from FeatureSourceBase.onAddFeature

### `Optional` onEditFeature

onEditFeature?: Action

The action to be executed when a feature is edited.

Inherited from FeatureSourceBase.onEditFeature

### `Optional` queryService

queryService?: QueryService

An optional query service that the feature source can use to get features.

Inherited from FeatureSourceBase.queryService

### title

title: string

See data/FeatureSource!FeatureSource.title.

Overrides FeatureSourceBase.title

##
Accessors

### capabilities

- get capabilities(): GeocoderCapabilities

- Capabilities of the feature source.

  #### Returns GeocoderCapabilities

  Overrides FeatureSourceBase.capabilities

### failureMode

- get failureMode(): FailureMode

- Determines how a parent object should handle initialization failure in this object. The default is "warn".

  - `"error"`: support/InitializeError!InitializeError is thrown.
  - `"warn"`: Message is logged and support/InitializableBase!InitializeWarningEvent is raised.
  - `"ignore"`: support/InitializableBase!InitializeWarningEvent is raised.

  #### Returns FailureMode

  Inherited from FeatureSourceBase.failureMode

- set failureMode(value): void

- #### Parameters

  - value: FailureMode

  #### Returns void

  Inherited from FeatureSourceBase.failureMode

### featureActions

- get featureActions(): Menu<MenuItemProperties, MenuProperties, MenuItem<MenuItemProperties, MenuProperties>>

- A menu for actions specifically related to features from this source.

  #### Returns Menu<MenuItemProperties, MenuProperties, MenuItem<MenuItemProperties, MenuProperties>>

  Inherited from FeatureSourceBase.featureActions

- set featureActions(value): void

- A menu for actions specifically related to features from this source.

  #### Parameters

  - value: Menu<MenuItemProperties, MenuProperties, MenuItem<MenuItemProperties, MenuProperties>>

  #### Returns void

  Inherited from FeatureSourceBase.featureActions

### featureSettings

- get featureSettings(): FeatureSettings

- Default settings that apply to features originating from this source.

  #### Returns FeatureSettings

  Inherited from FeatureSourceBase.featureSettings

### featureSourceActions

- get featureSourceActions(): Menu<MenuItemProperties, MenuProperties, MenuItem<MenuItemProperties, MenuProperties>>

- A menu for actions specifically related to this source.

  #### Returns Menu<MenuItemProperties, MenuProperties, MenuItem<MenuItemProperties, MenuProperties>>

  Inherited from FeatureSourceBase.featureSourceActions

- set featureSourceActions(value): void

- A menu for actions specifically related to this source.

  #### Parameters

  - value: Menu<MenuItemProperties, MenuProperties, MenuItem<MenuItemProperties, MenuProperties>>

  #### Returns void

  Inherited from FeatureSourceBase.featureSourceActions

### hyperlinks

- get hyperlinks(): Collection<Hyperlink>

- Hyperlinks associated with the feature source.

  #### Returns Collection<Hyperlink>

  Inherited from FeatureSourceBase.hyperlinks

### id

- get id(): string

- The unique ID for this entity.

  #### Returns string

  Inherited from FeatureSourceBase.id

### isDestroyed

- get isDestroyed(): boolean

- See support/InitializableBase!Initializable.isDestroyed.

  #### Returns boolean

  Inherited from FeatureSourceBase.isDestroyed

### isInitialized

- get isInitialized(): boolean

- See support/InitializableBase!Initializable.isInitialized.

  #### Returns boolean

  Inherited from FeatureSourceBase.isInitialized

### itemType

- get itemType(): string

- The item type for this entity when it participates in an App.

  #### Returns string

  Inherited from FeatureSourceBase.itemType

### relationships

- get relationships(): Collection<Relationship>

- Relationships to other feature sources.

  #### Returns Collection<Relationship>

  Inherited from FeatureSourceBase.relationships

### schema

- get schema(): Schema

- Metadata about features originating from this source, such as fields, domains, and geometry type.

  #### Returns Schema

  Inherited from FeatureSourceBase.schema

### taskSettings

- get taskSettings(): TaskSettings

- Settings that affect whether a feature source participates in various tasks that are performed on a map.

  #### Returns TaskSettings

  Inherited from FeatureSourceBase.taskSettings

##
Methods

### `Protected`_addAttachment

- _addAttachment(feature, attachment): Promise<Attachment>

- Called to add an attachment to a feature. Subclasses must override this if they support feature attachments.

  #### Parameters

  - feature: Feature

    The feature to add the attachment to.

  - attachment: AttachmentProperties | Attachment | File

    The attachment to add to the feature.

  #### Returns Promise<Attachment>

  Inherited from FeatureSourceBase._addAttachment

### `Protected`_addFeatures

- _addFeatures(features, options?): Promise<void>

- Called to add new features. Subclasses must override this if they support adding features.

  #### Parameters

  - features: Iterable<Feature, any, any>

    The features to add.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the feature is saved.

  #### Returns Promise<void>

  Inherited from FeatureSourceBase._addFeatures

### `Protected`_capabilities

- _capabilities(): GeocoderCapabilities

- The capabilities of the feature source.

  #### Returns GeocoderCapabilities

  Overrides FeatureSourceBase._capabilities

### `Protected`_createAddressSchema

- _createAddressSchema(): Schema

- Called to create the data/Schema!Schema representing the input address.

  #### Returns Schema

### `Protected`_createFeatureSettings

- _createFeatureSettings(): FeatureSettings

- Called to create the data/FeatureSettings!FeatureSettings for this feature source.

  #### Returns FeatureSettings

  Inherited from FeatureSourceBase._createFeatureSettings

### `Protected`_createHyperlinks

- _createHyperlinks(): Collection<Hyperlink>

- Called to create the Hyperlink collection for this feature source.

  #### Returns Collection<Hyperlink>

  Inherited from FeatureSourceBase._createHyperlinks

### `Protected`_createRelationships

- _createRelationships(): Collection<Relationship>

- Called to create the data/_Relationship!Relationship collection for this feature source.

  #### Returns Collection<Relationship>

  Inherited from FeatureSourceBase._createRelationships

### `Protected`_createSchema

- _createSchema(properties?): Schema

- Called to create the data/Schema!Schema for this feature source.

  #### Parameters

  - `Optional` properties: SchemaProperties

    Initial properties for the schema.

  #### Returns Schema

  Inherited from FeatureSourceBase._createSchema

### `Protected`_createTaskSettings

- _createTaskSettings(): TaskSettings

- Called to create the data/TaskSettings!TaskSettings for this feature source.

  #### Returns TaskSettings

  Inherited from FeatureSourceBase._createTaskSettings

### `Protected`_deleteAttachments

- _deleteAttachments(feature, attachments): Promise<void>

- Called to remove attachments from a feature. Subclasses must override this if they support feature attachments.

  #### Parameters

  - feature: Feature

    The feature to delete attachments from.

  - attachments: (string | Attachment)[]

    The attachments or the IDs of the attachments to delete.

  #### Returns Promise<void>

  Inherited from FeatureSourceBase._deleteAttachments

### `Protected`_deleteFeatures

- _deleteFeatures(ids, options?): Promise<void>

- Called to delete features. Subclasses must override this if they support deleting features.

  #### Parameters

  - ids: string[]

    The IDs of the features to delete.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the features are deleted.

  #### Returns Promise<void>

  Inherited from FeatureSourceBase._deleteFeatures

### `Protected`_getAttachments

- _getAttachments(feature): Promise<Attachment[]>

- Called to retrieve attachments for a feature. Subclasses must override this if they support feature attachments.

  #### Parameters

  - feature: Feature

    The feature to get attachments for.

  #### Returns Promise<Attachment[]>

  Inherited from FeatureSourceBase._getAttachments

### `Protected`_getFeatures

- _getFeatures(ids, options?): AsyncIterable<Feature, any, any>

- Called to retrieve features. Subclasses must override this if they support querying for features.

  #### Parameters

  - ids: string[]

    The unique IDs of features to retrieve.

  - `Optional` options: FeatureReadOptions

    Options that control what gets returned.

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

  Inherited from FeatureSourceBase._getFeatures

### `Protected`_getSerializableProperties

- _getSerializableProperties(): PropertyDefs<TProperties>

- The property keys and their metadata that are used to implement serializing and deserializing the class instance.

  #### Returns PropertyDefs<TProperties>

  Overrides FeatureSourceBase._getSerializableProperties

### `Protected`_initializableChildCollections

- _initializableChildCollections(): IterableIterator<Collection<InitializableBase<unknown>>, any, any>

- Collections of child items to initialize. Items that fail to initialize are removed from the collection.

  #### Returns IterableIterator<Collection<InitializableBase<unknown>>, any, any>

  Inherited from FeatureSourceBase._initializableChildCollections

### `Protected`_initializeChildren

- _initializeChildren(): Promise<void>

- Initializes child entities.

  #### Returns Promise<void>

  Inherited from FeatureSourceBase._initializeChildren

### `Protected`_isRelationship

- _isRelationship(relationship): boolean

- #### Parameters

  - relationship: Relationship | RelationshipProperties

  #### Returns boolean

  Inherited from FeatureSourceBase._isRelationship

### `Protected`_onDestroy

- _onDestroy(): Promise<void>

- Called to perform cleanup. Subclasses should override this method rather than destroy() to perform custom cleanup.

  #### Returns Promise<void>

  Inherited from FeatureSourceBase._onDestroy

### `Protected`_onInitialize

- _onInitialize(): Promise<void>

- Called to perform initialization of the support/InitializableBase!InitializableBase. Subclasses should override this method rather than initialize() to perform custom initialization.

  #### Returns Promise<void>

  Inherited from FeatureSourceBase._onInitialize

### `Protected`_postInitialize

- _postInitialize(): Promise<void>

- Called after normal initialization. Note: Child items are initialized before this is called.

  #### Returns Promise<void>

  Inherited from FeatureSourceBase._postInitialize

### `Protected`_toPropertyDef

- _toPropertyDef<T>(def): PropertyDef<T>

- Converts the value to a PropertyDef object.

  #### Type Parameters

  - T

  #### Parameters

  - def: PropertyDefSerializeMode | PropertyDefSerializeMode[] | PropertyDef<T>

    The value to convert.

  #### Returns PropertyDef<T>

  Inherited from FeatureSourceBase._toPropertyDef

### `Protected`_updateFeatures

- _updateFeatures(features, options?): Promise<void>

- Called to update features. Subclasses must override this if they support updating features.

  #### Parameters

  - features: Iterable<Feature, any, any>

    The feature to update.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the feature is saved.

  #### Returns Promise<void>

  Inherited from FeatureSourceBase._updateFeatures

### addAttachment

- addAttachment(feature, attachment): Promise<Attachment>

- Adds an attachment to a feature.

  #### Parameters

  - feature: Feature

    The feature to add the attachment to.

  - attachment: AttachmentProperties | Attachment | File

    The attachment to add to the feature.

  #### Returns Promise<Attachment>

  Inherited from FeatureSourceBase.addAttachment

### addFeature

- addFeature(feature, options?): Promise<void>

- Adds a new feature to the source. If the source does not support adding features, then an InvalidOperationError will be thrown (see capabilities).

  #### Parameters

  - feature: Feature

    The feature to add.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the feature is saved.

  #### Returns Promise<void>

  Overrides FeatureSourceBase.addFeature

### addFeatures

- addFeatures(features, options?): Promise<void>

- Adds a set of features to the source. If the source does not support adding features, then an InvalidOperationError will be thrown (see capabilities).

  #### Parameters

  - features: FeatureSet

    The features to add.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the features are saved.

  #### Returns Promise<void>

  Overrides FeatureSourceBase.addFeatures

### assignProperties

- assignProperties(properties): void

- #### Parameters

  - properties: Partial<TProperties>

  #### Returns void

  #### Inherit Doc

  Inherited from FeatureSourceBase.assignProperties

### assignPropertiesAsync

- assignPropertiesAsync(properties): Promise<void>

- #### Parameters

  - properties: Partial<TProperties>

  #### Returns Promise<void>

  #### Inherit Doc

  Inherited from FeatureSourceBase.assignPropertiesAsync

### `Abstract` batchGeocode

- batchGeocode(addresses, options?): AsyncIterable<Feature, any, any>

- Finds locations corresponding to multiple addresses. The geocoder must have the supportsBatchGeocoding capability (see capabilities).

  #### Parameters

  - addresses: AddressLike[]

    The addresses to search for. Can either be a string like "123 Sesame Street", or a feature or JSON object representing an address. In the latter case, the address field names and types understood by the geocoder are defined by the addressSchema property. Only the attributes are used -- any geometries on input features are ignored.

  - `Optional` options: GeocodeOptions

    Options that affect how the search is performed.

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

  A set of features representing a candidate matches for each address. In addition to its normal attributes, each feature will have a special data/Feature!SCORE_FIELD attribute which is a number from 0 to 100 indicating a level of confidence in the match. It will also have a special tasks/geocoding/Geocoder!ADDRESS_FIELD attribute which is the input address that it matches.

### `Abstract` count

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

- Counts the number of locations corresponding to an address.

  #### Parameters

  - address: AddressLike

    The address to search for. Can either be a string like "123 Sesame Street", or a feature or JSON object representing an address. In the latter case, the address field names and types understood by the geocoder are defined by the addressSchema property. Only the attributes are used -- any geometry on the input feature is ignored.

  - `Optional` options: GeocodeOptions

    Options that affect how the search is performed.

  #### Returns Promise<CountResult>

  A count resulting indicating the number of candidate matches for the address.

### deleteAttachments

- deleteAttachments(feature, attachments): Promise<void>

- Deletes attachments from a feature.

  #### Parameters

  - feature: Feature

    The feature to delete attachments from.

  - attachments: (string | Attachment)[]

    The attachments or the IDs of the attachments to delete from the feature.

  #### Returns Promise<void>

  Inherited from FeatureSourceBase.deleteAttachments

### deleteFeature

- deleteFeature(id, options?): Promise<void>

- Deletes a feature from its source. If the source does not support deleting features, then an InvalidOperationError will be thrown (see capabilities).

  #### Parameters

  - id: string

    The ID of the feature to delete.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the features are deleted.

  #### Returns Promise<void>

  Overrides FeatureSourceBase.deleteFeature

- deleteFeature(feature, options?): Promise<void>

- Deletes a feature from its source. If the source does not support deleting features, then an InvalidOperationError will be thrown (see capabilities).

  #### Parameters

  - feature: Feature

    The feature to delete.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the features are deleted.

  #### Returns Promise<void>

  Overrides FeatureSourceBase.deleteFeature

### deleteFeatures

- deleteFeatures(ids, options?): Promise<void>

- Deletes features from their source. If the source does not support deleting features, then an InvalidOperationError will be thrown (see capabilities).

  #### Parameters

  - ids: string[]

    The IDs of the features to delete.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the features are deleted.

  #### Returns Promise<void>

  Overrides FeatureSourceBase.deleteFeatures

- deleteFeatures(features, options?): Promise<void>

- Deletes features from their source. If the source does not support deleting features, then an InvalidOperationError will be thrown (see capabilities).

  #### Parameters

  - features: FeatureSet

    The features to delete.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the features are deleted.

  #### Returns Promise<void>

  Overrides FeatureSourceBase.deleteFeatures

### destroy

- destroy(): Promise<void>

- A clean-up function that should get called whenever the item is disposed of.

  #### Returns Promise<void>

  Inherited from FeatureSourceBase.destroy

### finishAssignProperties

- finishAssignProperties(): Promise<void>

- #### Returns Promise<void>

  #### Inherit Doc

  Inherited from FeatureSourceBase.finishAssignProperties

### `Abstract` geocode

- geocode(address, options?): AsyncIterable<Feature, any, any>

- Finds one or more locations corresponding to an address.

  #### Parameters

  - address: AddressLike

    The address to search for. Can either be a string like "123 Sesame Street", or a feature or JSON object representing an address. In the latter case, the address field names and types understood by the geocoder are defined by the addressSchema property. Only the attributes are used -- any geometry on the input feature is ignored.

  - `Optional` options: GeocodeOptions

    Options that affect how the search is performed.

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

  A set of features representing candidate matches for the address. In addition to its normal attributes, each feature will have a special data/Feature!SCORE_FIELD attribute which is a number from 0 to 100 indicating a level of confidence in the match.

### getAttachments

- getAttachments(feature): Promise<Attachment[]>

- Gets any attachments associated with a feature.

  #### Parameters

  - feature: Feature

    The feature to get attachments for.

  #### Returns Promise<Attachment[]>

  Inherited from FeatureSourceBase.getAttachments

### getDefault

- getDefault<K>(key): TProperties[K]

- #### Type Parameters

  - K extends string | number | symbol

  #### Parameters

  - key: K

  #### Returns TProperties[K]

  #### Inherit Doc

  Inherited from FeatureSourceBase.getDefault

### getDefaults

- getDefaults(): TProperties

- #### Returns TProperties

  #### Inherit Doc

  Inherited from FeatureSourceBase.getDefaults

### getFeature

- getFeature(id, options?): Promise<Feature>

- Gets a feature by ID. If no such feature exists, the promise is rejected with an instance of NotFoundError.

  #### Parameters

  - id: string

    The ID of the feature to retrieve.

  - `Optional` options: FeatureReadOptions

    Additional options that control how the feature is retrieved.

  #### Returns Promise<Feature>

  Overrides FeatureSourceBase.getFeature

### getFeatures

- getFeatures(ids, options?): AsyncIterable<Feature, any, any>

- Gets a set of features by their IDs.

  #### Parameters

  - ids: string[]

    The IDs of the features to retrieve.

  - `Optional` options: FeatureReadOptions

    Additional Options that control how the features are retrieved.

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

  Overrides FeatureSourceBase.getFeatures

### getFullExtent

- getFullExtent(): Extent

- Returns the full extent of the source that contains all included features.

  #### Returns Extent

  Inherited from FeatureSourceBase.getFullExtent

### getSerializableProperties

- getSerializableProperties(serializeMode?): PropertyDefs<TProperties>

- Returns the serializable properties.

  #### Parameters

  - `Optional` serializeMode: SerializeMode

    Optional. If specified, only properties that support the given serialization mode will be returned.

  #### Returns PropertyDefs<TProperties>

  Inherited from FeatureSourceBase.getSerializableProperties

### initialize

- initialize(): Promise<void>

- Initializes the item.

  #### Returns Promise<void>

  Inherited from FeatureSourceBase.initialize

### `Abstract` reverseGeocode

- reverseGeocode(location, options?): Promise<Feature>

- Finds the address at a particular location. The geocoder must have the supportsReverseGeocoding capability (see capabilities).

  #### Parameters

  - location: Point

    The location to search for.

  - `Optional` options: GeocodeOptions

    Options that affect how the search is performed.

  #### Returns Promise<Feature>

  A feature representing the address at the given location, or undefined if there is no match.

### `Abstract` suggest

- suggest(searchText, options?): Promise<string[]>

- Suggests matching addresses to search for based on some input text. The geocoder must have the supportsSuggest capability (see capabilities).

  #### Parameters

  - searchText: string

    The input text to search for.

  - `Optional` options: GeocodeOptions

    Options that affect how the search is performed.

  #### Returns Promise<string[]>

  A list of formatted address suggestions.

### toItemUri

- toItemUri(): string

- Creates an item:// URI reference to this entity.

  #### Returns string

  Inherited from FeatureSourceBase.toItemUri

### toJSON

- toJSON(serializeMode?): TProperties

- #### Parameters

  - serializeMode: SerializeMode = "all"

  #### Returns TProperties

  #### Inherit Doc

  Inherited from FeatureSourceBase.toJSON

### updateFeature

- updateFeature(feature, options?): Promise<void>

- Saves changes to an existing feature. If the source does not support updating features, then an InvalidOperationError will be thrown (see capabilities).

  #### Parameters

  - feature: Feature

    The feature to update.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the feature is saved.

  #### Returns Promise<void>

  Overrides FeatureSourceBase.updateFeature

### updateFeatures

- updateFeatures(features, options?): Promise<void>

- Saves changes to a existing features. If the source does not support updating features, then an InvalidOperationError will be thrown (see capabilities).

  #### Parameters

  - features: FeatureSet

    The features to update.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the features are saved.

  #### Returns Promise<void>

  Overrides FeatureSourceBase.updateFeatures