require(["esri/symbols/WebStyleSymbol"], (WebStyleSymbol) => { /* code goes here */ });
import WebStyleSymbol from "@arcgis/core/symbols/WebStyleSymbol.js";
esri/symbols/WebStyleSymbol
WebStyleSymbol is a class used to conveniently create vector 2D symbols and realistic and thematic 3D symbols. It is a wrapper for creating CIMSymbol and PointSymbol3D objects that point to a web style resource available in the API.
Web styles are collections of symbols stored in an ArcGIS Enterprise portal or
ArcGIS Online item. As of the current release, only
Esri Web Style Symbols (2D) and
Esri Web Style Symbols (3D) can be used in conjunction with this class.
Note that the 2D web style symbols are only supported in 2D and 3D web style symbols are only supported in 3D with an
exception of EsriIconsStyle
which can be used in both 2D and 3D.
A WebStyleSymbol does not contain any symbology definition itself; it only contains a reference to a web style symbol. For visualization purposes, it is internally replaced with the CIMSymbol or the PointSymbol3D instance it refers to. You can use fetchSymbol() to retrieve the actual symbol object from the web style to alter its color or size.
A web style can be referenced either directly with a URL (styleUrl) or registered style's unique name (styleName).
Known Limitation
- Currently, fetchSymbol() method will only work for 3d web style symbols
// Referencing a web style via styleName
let symbol = {
type: "web-style", // autocasts as new WebStyleSymbol()
styleName: "EsriThematicShapesStyle",
name: "Standing Diamond"
};
// Referencing a web style via styleUrl
let symbol = {
type: "web-style", // autocasts as new WebStyleSymbol()
styleUrl: "http://www.arcgis.com/sharing/rest/content/items/bf27400d167d4c2e8e12c8a46f87afe4/data",
name: "Centered Sphere"
};
Constructors
-
Parameterproperties Objectoptional
See the properties for a list of all the properties that may be passed into the constructor.
Property Overview
Name | Type | Summary | Class |
---|---|---|---|
The name of the class. | Accessor | ||
The name of the symbol within the web style. | WebStyleSymbol | ||
The portal that contains the web style this symbol refers to. | WebStyleSymbol | ||
A registered web style name. | WebStyleSymbol | ||
URL that points to the web style definition. | WebStyleSymbol | ||
For WebStyleSymbol the type is always "web-style". | WebStyleSymbol |
Property Details
-
name
name String
-
The name of the symbol within the web style. Each symbol in a web style is identified by a unique name. Only Esri Web Style Symbols (2D) and Esri Web Style Symbols (3D) can be referenced here.
-
The portal that contains the web style this symbol refers to. Only required when styleName is set.
Defaults to the value in config.portalUrl (e.g. https://www.arcgis.com).
-
styleName
styleName String
-
A registered web style name. Only Esri Web Style Symbols (2D) and Esri Web Style Symbols (3D) can be referenced here. Note that the 2D web style symbols are only supported in 2D and 3D web style symbols are only supported in 3D with an exception of
EsriIconsStyle
which can be used in both 2D and 3D.Requires portal property to be set. Can not be used in conjunction with styleUrl.
See class description for example.
-
type
type Stringreadonly
-
For WebStyleSymbol the type is always "web-style".
Method Overview
Name | Return Type | Summary | Class |
---|---|---|---|
Adds one or more handles which are to be tied to the lifecycle of the object. | Accessor | ||
Creates a deep clone of the symbol. | WebStyleSymbol | ||
Promise<CIMSymbol> | Returns the CIMSymbol instance the WebStyleSymbol refers to. | WebStyleSymbol | |
Promise<PointSymbol3D> | Downloads and returns the PointSymbol3D instance the WebStyleSymbol refers to. | WebStyleSymbol | |
* | Creates a new instance of this class and initializes it with values from a JSON object generated from an ArcGIS product. | Symbol | |
Returns true if a named group of handles exist. | Accessor | ||
Removes a group of handles owned by the object. | Accessor | ||
Converts an instance of this class to its ArcGIS portal JSON representation. | Symbol |
Method Details
-
Inherited from Accessor
Since: ArcGIS Maps SDK for JavaScript 4.25Accessor since 4.0, addHandles added at 4.25. -
Adds one or more handles which are to be tied to the lifecycle of the object. The handles will be removed when the object is destroyed.
// Manually manage handles const handle = reactiveUtils.when( () => !view.updating, () => { wkidSelect.disabled = false; }, { once: true } ); this.addHandles(handle); // Destroy the object this.destroy();
ParametershandleOrHandles WatchHandle|WatchHandle[]Handles marked for removal once the object is destroyed.
groupKey *optionalKey identifying the group to which the handles should be added. All the handles in the group can later be removed with Accessor.removeHandles(). If no key is provided the handles are added to a default group.
-
clone
clone(){WebStyleSymbol}
-
Creates a deep clone of the symbol.
ReturnsType Description WebStyleSymbol A deep clone of the object that invoked this method. Example// Creates a deep clone of the graphic's symbol let symLyr = graphic.symbol.clone();
-
fetchCIMSymbol
fetchCIMSymbol(options){Promise<CIMSymbol>}
Since: ArcGIS Maps SDK for JavaScript 4.16WebStyleSymbol since 4.1, fetchCIMSymbol added at 4.16. -
Returns the CIMSymbol instance the WebStyleSymbol refers to.
Parametersoptions ObjectoptionalAn object with the following properties.
Specificationsignal AbortSignaloptionalSignal object that can be used to abort the asynchronous task. The returned promise will be rejected with an Error named
AbortError
when an abort is signaled. See also AbortController for more information on how to construct a controller that can be used to deliver abort signals.ReturnsExample// Given a SimpleRenderer with a WebStyleSymbol, // fetch the corresponding CIMSymbol, // then replace the renderer symbol with the returned CIMSymbol renderer.symbol.fetchCIMSymbol().then(function (cimSymbol) { renderer.symbol = cimSymbol; });
-
fetchSymbol
fetchSymbol(options){Promise<PointSymbol3D>}
-
Downloads and returns the PointSymbol3D instance the WebStyleSymbol refers to.
Parametersoptions ObjectoptionalAn object with the following properties.
Specificationsignal AbortSignaloptionalSignal object that can be used to abort the asynchronous task. The returned promise will be rejected with an Error named
AbortError
when an abort is signaled. See also AbortController for more information on how to construct a controller that can be used to deliver abort signals.ReturnsType Description Promise<PointSymbol3D> When resolved, returns a PointSymbol3D instance. Example// Given a SimpleRenderer with a WebStyleSymbol, replaces the symbol with its non-referencing version by fetching it renderer.symbol.fetchSymbol().then(function(actualSymbol) { renderer.symbol = actualSymbol; });
-
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.Parameterjson ObjectA 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.
ReturnsType Description * Returns a new instance of this class.
-
hasHandles
InheritedMethodhasHandles(groupKey){Boolean}
Inherited from AccessorSince: ArcGIS Maps SDK for JavaScript 4.25Accessor since 4.0, hasHandles added at 4.25. -
Returns true if a named group of handles exist.
ParametergroupKey *optionalA group key.
ReturnsType Description Boolean Returns true
if a named group of handles exist.Example// Remove a named group of handles if they exist. if (obj.hasHandles("watch-view-updates")) { obj.removeHandles("watch-view-updates"); }
-
Inherited from Accessor
Since: ArcGIS Maps SDK for JavaScript 4.25Accessor since 4.0, removeHandles added at 4.25. -
Removes a group of handles owned by the object.
ParametergroupKey *optionalA group key or an array or collection of group keys to remove.
Exampleobj.removeHandles(); // removes handles from default group obj.removeHandles("handle-group"); obj.removeHandles("other-handle-group");
-
toJSON
InheritedMethodtoJSON(){Object}
Inherited from Symbol -
Converts an instance of this class to its ArcGIS portal JSON representation. See the Using fromJSON() guide topic for more information.
ReturnsType Description Object The ArcGIS portal JSON representation of an instance of this class.