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
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 |
|---|---|---|
| inherited static | fromJSON(json: any): any | |
| applyEdits(edits: ServiceEdits[], options?: ServiceEditOptions): Promise<ServiceEditsResult[]> | | |
| inherited | cancelLoad(): this | |
| fetchAllLayersAndTables(options?: AbortOptions | null | undefined): Promise<ServiceContents> | | |
| inherited | isFulfilled(): boolean | |
| inherited | isRejected(): boolean | |
| inherited | isResolved(): boolean | |
| load(options?: AbortOptions | null | undefined): Promise<this> | | |
| inherited | toJSON(): any | |
| 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 layeridentifierFields: { 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 layeridentifierFields: { 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 layeridentifierFields: { 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});