import FeatureService from "@arcgis/core/rest/featureService/FeatureService.js";const FeatureService = await $arcgis.import("@arcgis/core/rest/featureService/FeatureService.js");- Inheritance:
- FeatureService→
Accessor
- Since
- ArcGIS Maps SDK for JavaScript 4.28
This class contains metadata about the feature service. The class can be constructed via a url to a feature service or from the class utils using the createFeatureServices() method.
Constructors
Constructor
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| properties | | |
Examples
// Create a FeatureService from a urlconst featureService = new FeatureService({ url: "https://sampleserver6.arcgisonline.com/arcgis/rest/services/Wildfire/FeatureServer"});// Create a FeatureService using [createFeatureServices()](https://developers.arcgis.com/javascript/latest/references/core/rest/featureService/utils/#createFeatureServices)const layer1 = new FeatureLayer({url: `https://sampleserver6.arcgisonline.com/arcgis/rest/services/TestService/FeatureServer/12`});const layer2 = new FeatureLayer({url: `https://sampleserver6.arcgisonline.com/arcgis/rest/services/TestService/FeatureServer/13`});const layers = [layer1, layer2];const mapOfServices = createFeatureServices(layers);//loading featureService from map object.const featureService = await mapOfServices.get(`https://sampleserver6.arcgisonline.com/arcgis/rest/services/TestService/FeatureServer`).featureService.load();Properties
| Property | Type | Class |
|---|---|---|
capabilities readonly | | |
declaredClass readonly inherited | ||
effectiveCapabilities readonly | | |
| | ||
loaded readonly | | |
loadError readonly inherited | ||
loadStatus readonly inherited | "not-loaded" | "loading" | "failed" | "loaded" | |
loadWarnings readonly inherited | any[] | |
| | ||
uid readonly inherited | ||
| | ||
string[] | | |
utilityNetworkUrl readonly | | |
versionManagementServiceUrl readonly | |
capabilities
- Type
- ServiceCapabilities | null | undefined
Describes the layer's supported capabilities.
effectiveCapabilities
- Type
- ServiceCapabilities | null
- Since
- ArcGIS Maps SDK for JavaScript 4.30
Describes effective capabilities of the service taking in to consideration privileges of the currently signed-in user.
loaded
- Type
- boolean
Indicates whether the instance has loaded. When true,
the properties of the object can be accessed. A WebMap is considered loaded
when its WebDocument2D.layers and WebDocument2D.basemap are created, but not
yet loaded.
- Default value
- false
loadError
The Error object returned if an error occurred while loading.
loadStatus
- Type
- "not-loaded" | "loading" | "failed" | "loaded"
Represents the status of a load() operation.
| Value | Description |
|---|---|
| not-loaded | The object's resources have not loaded. |
| loading | The object's resources are currently loading. |
| loaded | The object's resources have loaded without errors. |
| failed | The object's resources failed to load. See loadError for more details. |
- Default value
- "not-loaded"
loadWarnings
- Type
- any[]
A list of warnings which occurred while loading.
uid
- Type
- string
- Since
- ArcGIS Maps SDK for JavaScript 4.33
An automatically generated unique identifier assigned to the instance. The unique id is generated each time the application is loaded.
url
- Type
- string
The absolute URL of the REST endpoint for the feature service. The URL may either point to a resource on ArcGIS Enterprise or ArcGIS Online.
Methods
| Method | Signature | Class |
|---|---|---|
fromJSON inherited static | fromJSON(json: any): any | |
applyEdits(edits: ServiceEdits[], options?: ServiceEditOptions): Promise<ServiceEditsResult[]> | | |
cancelLoad inherited | cancelLoad(): this | |
fetchAllLayersAndTables(options?: AbortOptions | null | undefined): Promise<ServiceContents> | | |
isFulfilled inherited | isFulfilled(): boolean | |
isRejected inherited | isRejected(): boolean | |
isResolved inherited | isResolved(): boolean | |
load(options?: AbortOptions | null | undefined): Promise<this> | | |
toJSON inherited | toJSON(): any | |
when inherited | when<TResult1 = this, TResult2 = never>(onFulfilled?: OnFulfilledCallback<this, TResult1> | null | undefined, onRejected?: OnRejectedCallback<TResult2> | null | undefined): Promise<TResult1 | TResult2> |
fromJSON
- Signature
-
fromJSON (json: any): any
Creates a new instance of this class and initializes it with values from a JSON object
generated from an ArcGIS product. The object passed into the input json
parameter often comes from a response to a query operation in the REST API or a
toJSON()
method from another ArcGIS product. See the Using fromJSON()
topic in the Guide for details and examples of when and how to use this function.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| json | A JSON representation of the instance in the ArcGIS format. See the ArcGIS REST API documentation for examples of the structure of various input JSON objects. | |
- Returns
- any
Returns a new instance of this class.
applyEdits
- Signature
-
applyEdits (edits: ServiceEdits[], options?: ServiceEditOptions): Promise<ServiceEditsResult[]>
Applies edits to features in the feature service layers. New features can be created and existing features can be updated or deleted. Feature geometries and/or attributes may be modified. Only applicable to layers in a feature service.
When calling the applyEdits method on a service that does not have vertical coordinate system information,
the z-values of the geometries in the edits object will automatically be converted to match the spatial reference of the layer.
Example: The service has a horizontal spatial reference with feet units, and applyEdits() is called with z-values based on meter units,
then the method will automatically convert the z values from meter to feet units. applyEdits() will pass in a sessionId during an active edit session.
The deleteAssociations, combineGroupedObjects, and divideGroupedObjects edits are in beta and are reserved for
future use in a telecom domain network.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| edits | Object containing features and attachments to be added, updated or deleted. | | |
| options | Additional edit options to specify when editing features or attachments. | |
- Returns
- Promise<ServiceEditsResult[]>
Results returned from the applyEdits() method. It contains features that were added, deleted or updated in different feature layers. It also contains the edit moment.
Example
// Adding multiple features with a single edit objectimport Graphic from "esri/Graphic";import Point from "esri/geometry/Point";import FeatureService from "esri/rest/featureService/FeatureService";
const featureService = new FeatureService({ url: "https://sampleserver6.arcgisonline.com/arcgis/rest/services/Wildfire/FeatureServer",});
await featureService.load();
featureService.applyEdits( [ { id: 0, // The layer ID, or layer index, of a Feature Service layer identifierFields: { objectIdField: "OBJECTID" }, addFeatures: [ new Graphic({ geometry: new Point({ x: -1329300, y: 4038900, spatialReference: { wkid: 102100, }, }), attributes: { description: "Feature description", }, }), new Graphic({ geometry: new Point({ x: -13300000, y: 4039000, spatialReference: { wkid: 102100, }, }), attributes: { description: "Feature description", }, }), ], }, ], { gdbVersion: null, globalIdUsed: false, honorSequenceOfEdits: false, usePreviousEditMoment: false, },);
// Adding multiple features with multiple edit objectsawait featureService.applyEdits( [ { id: 0, // The layer ID, or layer index, of a Feature Service layer identifierFields: { objectIdField: "OBJECTID" }, addFeatures: [ new Graphic({ geometry: new Point({ x: -13294000, y: 4038800, spatialReference: { wkid: 102100, }, }), attributes: { description: "Feature description", }, }), ], }, { id: 0, // The layer ID, or layer index, of a Feature Service layer identifierFields: { objectIdField: "OBJECTID" }, addFeatures: [ new Graphic({ geometry: new Point({ x: -13292000, y: 4038800, spatialReference: { wkid: 102100, }, }), attributes: { description: "Feature description", }, }), ], }, ], { gdbVersion: null, globalIdUsed: false, honorSequenceOfEdits: true, usePreviousEditMoment: false, },); cancelLoad
- Signature
-
cancelLoad (): this
Cancels a load() operation if it is already in progress.
- Returns
- this
fetchAllLayersAndTables
- Signature
-
fetchAllLayersAndTables (options?: AbortOptions | null | undefined): Promise<ServiceContents>
Triggers the loading of the feature service instance and fetches all layers and tables.
Fully loads the Feature Service definition.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| options | Additional options. | |
- Returns
- Promise<ServiceContents>
Resolves when the Feature Service is loaded.
isFulfilled
- Signature
-
isFulfilled (): boolean
isFulfilled() may be used to verify if creating an instance of the class is fulfilled (either resolved or rejected).
If it is fulfilled, true will be returned.
- Returns
- boolean
Indicates whether creating an instance of the class has been fulfilled (either resolved or rejected).
isRejected
- Signature
-
isRejected (): boolean
isRejected() may be used to verify if creating an instance of the class is rejected.
If it is rejected, true will be returned.
- Returns
- boolean
Indicates whether creating an instance of the class has been rejected.
isResolved
- Signature
-
isResolved (): boolean
isResolved() may be used to verify if creating an instance of the class is resolved.
If it is resolved, true will be returned.
- Returns
- boolean
Indicates whether creating an instance of the class has been resolved.
toJSON
- Signature
-
toJSON (): any
Converts an instance of this class to its ArcGIS portal JSON representation. See the Using fromJSON() guide topic for more information.
- Returns
- any
The ArcGIS portal JSON representation of an instance of this class.
when
- Signature
-
when <TResult1 = this, TResult2 = never>(onFulfilled?: OnFulfilledCallback<this, TResult1> | null | undefined, onRejected?: OnRejectedCallback<TResult2> | null | undefined): Promise<TResult1 | TResult2>
when() may be leveraged once an instance of the class is created. This method takes two input parameters: an onFulfilled function and an onRejected function.
The onFulfilled executes when the instance of the class loads. The
onRejected executes if the instance of the class fails to load.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| onFulfilled | OnFulfilledCallback<this, TResult1> | null | undefined | The function to call when the promise resolves. | |
| onRejected | The function to execute when the promise fails. | |
- Returns
- Promise<TResult1 | TResult2>
Returns a new promise for the result of
onFulfilledthat may be used to chain additional functions.
Example
// Although this example uses MapView, any class instance that is a promise may use when() in the same waylet view = new MapView();view.when(function(){ // This function will execute once the promise is resolved}, function(error){ // This function will execute if the promise is rejected due to an error});