Skip to content
import LineSymbol3DLayer from "@arcgis/core/symbols/LineSymbol3DLayer.js";
Inheritance:
LineSymbol3DLayerSymbol3DLayerAccessor
Since
ArcGIS Maps SDK for JavaScript 4.0

LineSymbol3DLayer renders Polyline geometries using a flat 2D line with a LineSymbol3D in a 3D SceneView. MapView does not support 3D symbols.

The color of the line is set in the material property. The width of the line may be defined in either points or pixels with the size property. Line width and color can also be data-driven by adding size and/or color visual variables to any Renderer that uses this symbol layer.

A LineSymbol3DLayer must be added to the symbolLayers property of a LineSymbol3D. Multiple symbol layers may be used in a single symbol. The image below depicts a line FeatureLayer whose features are symbolized with a LineSymbol3D containing a LineSymbol3DLayer.

symbols-3d-lines

See Symbol3DLayer and Symbol3D to read more general information about 3D symbols, symbol layers and how they relate to one another.

See also
Example
const symbol = {
type: "line-3d", // autocasts as new LineSymbol3D()
symbolLayers: [{
type: "line", // autocasts as new LineSymbol3DLayer()
size: 2, // points
material: { color: "black" },
cap: "round",
join: "round",
pattern: { // autocasts as new LineStylePattern3D()
type: "style",
style: "dash"
},
marker: { // autocasts as new LineStyleMarker3D()
type: "style",
style: "arrow",
placement: "end",
color: "red" // black line with red arrows
}
}]
};

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.

cap

Property
Type
LineCap
Since
ArcGIS Maps SDK for JavaScript 4.12

The style used to draw the endpoint of a line. This also applies to the tips of each pattern segment along the line. See the table below for possible values.

Possible ValueExample
buttsls-cap-butt
roundsls-cap-round
squaresls-cap-square
Default value
"butt"

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.

join

Property
Type
LineJoin
Since
ArcGIS Maps SDK for JavaScript 4.12

The style used to draw the intersection of two line segments within a line geometry. See the table below for possible values.

Possible ValueExample
bevelsls-join-bevel
mitersls-join-miter
roundsls-join-round
Default value
"miter"

marker

autocast Property
Type
LineStyleMarker3D | null | undefined
Since
ArcGIS Maps SDK for JavaScript 4.23

Optional markers to be placed at the start and/or end of each line geometry.

By default, no markers are placed. If markers are added, marker size is proportional to the width of the line. While markers inherit the line's color by default, you can use the color attribute to set a different one.

Example
const symbol = {
type: "line-3d", // autocasts as new LineSymbol3D()
symbolLayers: [{
type: "line", // autocasts as new LineSymbol3DLayer()
material: { color: "black" },
marker: { // autocasts as new LineStyleMarker3D()
type: "style",
style: "arrow",
placement: "end",
color: "red" // black line with red arrows
}
}]
};

material

autocast Property
Type
Symbol3DMaterial | null | undefined

The material used to shade the line. This property defines the line's color.

Examples
// CSS color string
symbolLayer.material = {
color: "dodgerblue"
};
// HEX string
symbolLayer.material = {
color: "#33cc33";
}
// array of RGBA values
symbolLayer.material = {
color: [51, 204, 51, 0.3];
}
// object with rgba properties
symbolLayer.material = {
color: {
r: 51,
g: 51,
b: 204,
a: 0.7
}
};

pattern

autocast Property
Type
LineStylePattern3D | null | undefined
Since
ArcGIS Maps SDK for JavaScript 4.22

The pattern used to render the line stroke. By default, the lines are shown as solid.

Example
const symbol = {
type: "line-3d", // autocasts as new LineSymbol3D()
symbolLayers: [{
type: "line", // autocasts as new LineSymbol3DLayer()
size: 2, // points
material: { color: "black" },
pattern: { // autocasts as new LineStylePattern3D()
type: "style",
style: "dash"
}
}]
};

size

autocast Property
Type
number

The width of the line in points. This value may be autocast with a string expressing size in points or pixels (e.g. 12px).

Default value
"1px"
Examples
// width in points
symbolLayer.size = 4;
// width in pixels
symbolLayer.size = "2px";
// width in points
symbolLayer.size = "4pt";

type

readonly Property
Type
"line"

The symbol type.

Methods

MethodSignatureClass
fromJSON
inherited static
fromJSON(json: any): any
clone(): LineSymbol3DLayer
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.

clone

Method
Signature
clone (): LineSymbol3DLayer

Creates a deep clone of the symbol layer.

Returns
LineSymbol3DLayer

A deep clone of the object that invoked this method.

Example
// Creates a deep clone of the graphic's first symbol layer
let symLyr = graphic.symbol.symbolLayers.at(0).clone();

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.