Skip to content
import Symbol3DLayer from "@arcgis/core/symbols/Symbol3DLayer.js";
Inheritance:
Symbol3DLayerAccessor
Subclasses:
ExtrudeSymbol3DLayer, FillSymbol3DLayer, IconSymbol3DLayer, LineSymbol3DLayer, ObjectSymbol3DLayer, PathSymbol3DLayer, TextSymbol3DLayer, WaterSymbol3DLayer
Since
ArcGIS Maps SDK for JavaScript 4.0

Symbol layers are used to define the visualization of Point, Polyline, Polygon, and mesh geometries rendered with 3D symbols. 3D symbols may only be used to render features in a FeatureLayer, SceneLayer, or standalone graphics in a 3D SceneView. There is no support for 3D symbols in 2D MapViews.

All 3D symbols have a Symbol3D.symbolLayers property, which is an array of Symbol3DLayer objects. All symbols must have at least one symbol layer added to the symbolLayers property. Think of the symbol object as a container that holds multiple symbol layers which define the appearance of the symbol. One layer may be an outline, another the fill, etc. The relationship of symbol layers to symbol is similar to the relationship of operational layers to a Map.

Each symbol layer type may only be applied to certain Symbol3D and Geometry types. See the table below to learn more about when to use each type of symbol layer.

Symbol3DLayer TypeSymbol3D TypeFlat/VolumetricSize UnitsExample
IconSymbol3DLayerPointSymbol3D, PolygonSymbol3Dflatpointss3d-icon-circle
ObjectSymbol3DLayerPointSymbol3D, PolygonSymbol3Dvolumetricmeterss3d-object
LineSymbol3DLayerLineSymbol3D, PolygonSymbol3Dflatpointss3d-line
PathSymbol3DLayerLineSymbol3Dvolumetricmeterss3d-path
FillSymbol3DLayerPolygonSymbol3D, MeshSymbol3Dflat-s3d-fill
WaterSymbol3DLayerPolygonSymbol3Dflat-s3d-water
ExtrudeSymbol3DLayerPolygonSymbol3Dvolumetricmeterss3d-extrusion
TextSymbol3DLayerPointSymbol3D, PolygonSymbol3D, LabelSymbol3Dflatpointss3d-text

The size of flat symbol layers is usually defined in either points or pixels (screen space) whereas the size of volumetric symbol layers is defined in meters (real-world space).

See also

Constructors

Constructor

Constructor
Parameters
ParameterTypeDescriptionRequired
properties
See the properties table for a list of all the properties that may be passed into the constructor.

Properties

Any properties can be set, retrieved or listened to. See the Watch for changes topic.
PropertyTypeClass
declaredClass
readonly inherited
type
readonly

declaredClass

readonlyinherited Property
Type
string
Inherited from: Accessor
Since
ArcGIS Maps SDK for JavaScript 4.7

The name of the class. The declared class name is formatted as esri.folder.className.

type

readonly Property
Type
Symbol3DLayerType | null | undefined

The 3D symbol layer type. See the table below for a list of possible values.

ValueDescription
icons3d-icon
objects3d-object
lines3d-line
paths3d-path
fills3d-fill
waters3d-water
extrudes3d-extrusion
texts3d-text

Methods

MethodSignatureClass
fromJSON
inherited static
fromJSON(json: any): any
toJSON
inherited
toJSON(): any

fromJSON

inheritedstatic Method
Signature
fromJSON (json: any): any
Inherited from: JSONSupportMixin

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
ParameterTypeDescriptionRequired
json
any

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.

toJSON

inherited Method
Signature
toJSON (): any
Inherited from: JSONSupportMixin

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.