Skip to content
import ShadowCastAnalysisView3D from "@arcgis/core/views/3d/analysis/ShadowCastAnalysisView3D.js";
Inheritance:
ShadowCastAnalysisView3DAnalysisView3DAnalysisViewAccessor
Since
ArcGIS Maps SDK for JavaScript 5.0

Represents the analysis view of a ShadowCastAnalysis after it has been added to SceneView.analyses.

The ShadowCastAnalysisView3D is responsible for rendering a ShadowCastAnalysis using custom visualizations. The methods on the analysis view provide developers with the ability to obtain the specific shadow duration at the certain point on the screen or to disable the shadow tooltip attached to the cursor.

The view for an analysis can be retrieved using SceneView.whenAnalysisView() similar to how layer views are retrieved for layers using SceneView.whenLayerView().

// retrieve analysis view for analysis
const analysis = new ShadowCastAnalysis();
view.analyses.add(analysis); // add to the scene view
const analysisView = await view.whenAnalysisView(analysis);
See also

Properties

Any properties can be set, retrieved or listened to. See the Watch for changes topic.
PropertyTypeClass
analysis
readonly
declaredClass
readonly inherited
type
readonly
"shadow-cast-view-3d"
updating
readonly

analysis

readonly Property
Type
ShadowCastAnalysis

The shadow cast analysis associated with the analysis view.

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.

interactive

Property
Type
boolean

Displays the shadow tooltip attached to the cursor. Set to false to disable it.

Default value
true

type

readonly Property
Type
"shadow-cast-view-3d"

The analysis view type.

updating

readonly Property
Type
boolean

Whether the analysis is currently being updated.

visible

Property
Type
boolean

When true, the analysis is visualized in the view.

Only one ShadowCastAnalysis at a time can be visible in a SceneView. When a shadow cast analysis is made visible by setting this property to true, all other shadow cast analysis views are automatically hidden.

Methods

MethodSignatureClass
emit
inherited
emit<Type extends EventNames<this>>(type: Type, event?: this["@eventTypes"][Type]): boolean
getDurationAtScreen(point: ScreenPoint): Promise<number>
hasEventListener
inherited
hasEventListener<Type extends EventNames<this>>(type: Type): boolean
isFulfilled
inherited
isFulfilled(): boolean
isRejected
inherited
isRejected(): boolean
isResolved
inherited
isResolved(): boolean
on
inherited
on<Type extends EventNames<this>>(type: Type, listener: EventedCallback<this["@eventTypes"][Type]>): ResourceHandle
when
inherited
when<TResult1 = this, TResult2 = never>(onFulfilled?: OnFulfilledCallback<this, TResult1> | null | undefined, onRejected?: OnRejectedCallback<TResult2> | null | undefined): Promise<TResult1 | TResult2>

emit

inherited Method
Signature
emit <Type extends EventNames<this>>(type: Type, event?: this["@eventTypes"][Type]): boolean
Type parameters
<Type extends EventNames<this>>
Inherited from: EventedMixin
Since
ArcGIS Maps SDK for JavaScript 4.5

Emits an event on the instance. This method should only be used when creating subclasses of this class.

Parameters
ParameterTypeDescriptionRequired
type
Type

The name of the event.

event
this["@eventTypes"][Type]

The event payload.

Returns
boolean

true if a listener was notified

getDurationAtScreen

Method
Signature
getDurationAtScreen (point: ScreenPoint): Promise<number>

Returns the time (in milliseconds) spent in shadow for a certain point on the screen.

Parameters
ParameterTypeDescriptionRequired
point

The point on the screen for which shadow cast is calculated.

Returns
Promise<number>

A promise that resolves to the duration (in milliseconds) spent in shadow for the given screen point.

Example
// use getDurationAtScreen method from the analysis view once available
const analysisView = await view.whenAnalysisView(shadowCastAnalysis);
// get shadow duration at the pointer location
view.on("pointer-move", async (event) => {
// duration in milliseconds
const duration = await analysisView.getDurationAtScreen({ x: event.x, y: event.y });
// ... do something with the duration
});

hasEventListener

inherited Method
Signature
hasEventListener <Type extends EventNames<this>>(type: Type): boolean
Type parameters
<Type extends EventNames<this>>
Inherited from: EventedMixin

Indicates whether there is an event listener on the instance that matches the provided event name.

Parameters
ParameterTypeDescriptionRequired
type
Type

The name of the event.

Returns
boolean

Returns true if the class supports the input event.

isFulfilled

inherited Method
Signature
isFulfilled (): boolean
Inherited from: EsriPromiseMixin

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

inherited Method
Signature
isRejected (): boolean
Inherited from: EsriPromiseMixin

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

inherited Method
Signature
isResolved (): boolean
Inherited from: EsriPromiseMixin

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.

on

inherited Method
Signature
on <Type extends EventNames<this>>(type: Type, listener: EventedCallback<this["@eventTypes"][Type]>): ResourceHandle
Type parameters
<Type extends EventNames<this>>
Inherited from: EventedMixin

Registers an event handler on the instance. Call this method to hook an event with a listener.

Parameters
ParameterTypeDescriptionRequired
type
Type

An event or an array of events to listen for.

listener
EventedCallback<this["@eventTypes"][Type]>

The function to call when the event fires.

Returns
ResourceHandle

Returns an event handler with a remove() method that should be called to stop listening for the event(s).

PropertyTypeDescription
removeFunctionWhen called, removes the listener from the event.
Example
view.on("click", function(event){
// event is the event handle returned after the event fires.
console.log(event.mapPoint);
});

when

inherited Method
Signature
when <TResult1 = this, TResult2 = never>(onFulfilled?: OnFulfilledCallback<this, TResult1> | null | undefined, onRejected?: OnRejectedCallback<TResult2> | null | undefined): Promise<TResult1 | TResult2>
Type parameters
<TResult1 = this, TResult2 = never>
Inherited from: EsriPromiseMixin
Since
ArcGIS Maps SDK for JavaScript 4.6

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
ParameterTypeDescriptionRequired
onFulfilled

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 onFulfilled that 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 way
let 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
});