LineOfSightAnalysis computes the line of sight from a single observer position towards a set of targets. The results are visualized in a 3D SceneView.
To display the line of sight between two points, create a new instance of LineOfSightAnalysis, add it to SceneView.analyses and set the observer and targets property.
Use the LineOfSightAnalysisView3D to retrieve analysis results.
// create lineofsight analysis
const lineOfSightAnalysis = new LineOfSightAnalysis({
observer: new LineOfSightAnalysisObserver({ position: somePoint),
targets:[
new LineOfSightAnalysisTarget({position: someOtherPoint})
]
});
// add to scene view
view.analyses.add(lineOfSightAnalysis);
// wait for the view to load before checking the result
await reactiveUtils.whenOnce(() => !view.updating);
// retrieve measured results from analysis view
const analysisView = await view.whenAnalysisView(lineOfSightAnalysis);
const results = analysisView.results;
Use the LineOfSight widget in order to add interactivity and allow users to change the geometry of the analysis.
If the observer position or target position have z-values then these will be treated as absolute values, otherwise the points will be aligned to the ground.
Known Limitation
This analysis is only supported in a 3D SceneView.
Constructors
-
new LineOfSightAnalysis(properties)
-
Parameter:properties Objectoptional
See the properties for a list of all the properties that may be passed into the constructor.
Property Overview
Name | Type | Summary | Class | |
---|---|---|---|---|
String | more details The name of the class. | more details | Accessor | |
LineOfSightAnalysisObserver | more details Observer location. | more details | LineOfSightAnalysis | |
Collection<LineOfSightAnalysisTarget> | more details Target locations. | more details | LineOfSightAnalysis |
Property Details
-
The name of the class. The declared class name is formatted as
esri.folder.className
.
-
observer LineOfSightAnalysisObserverautocast
-
Observer location. This is the point from which line of sight analysis is performed.
-
Target locations. A list of points to look at from the observer.
Method Overview
Name | Return Type | Summary | Class | |
---|---|---|---|---|
this | more details Creates a deep clone of this object. | more details | LineOfSightAnalysis | |
more details Adds one or more handles which are to be tied to the lifecycle of the object. | more details | Accessor |
Method Details
-
clone(){this}
-
Creates a deep clone of this object. Any properties that store values by reference will be assigned copies of the referenced values on the cloned instance.
Returns:Type Description this A deep clone of the class instance that invoked this method.
-
own(handleOrHandles)inheritedSince: ArcGIS API for JavaScript 4.24
-
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.whenOnce(() => !view.updating) .then(() => { wkidSelect.disabled = false; }); handle.remove(); // Assign a handle using own() this.own(reactiveUtils.whenOnce(() => !view.updating) .then(() => { wkidSelect.disabled = false; }));
Parameter:handleOrHandles WatchHandle|WatchHandle[]Handles marked for removal once the object is destroyed.