Profile line which samples elevation from a custom elevation source, for example by creating a new ElevationLayer, or by using an elevation layer from ground.layers.
Additionally, you can create your own source object with a method called queryElevation
, with the same signature as
queryElevation.
- See also:
const elevLayer = new ElevationLayer({
url: "https://sampleserver6.arcgisonline.com/arcgis/rest/services/Elevation/MtBaldy_Elevation/ImageServer"
});
const elevationProfile = new ElevationProfile({
view: view,
profiles: [{
type: "query", // autocasts as new ElevationProfileLineQuery(),
source: elevLayer
}]
});
Property Overview
Name | Type | Summary | Class | |
---|---|---|---|---|
Color | more details Color of the line on the chart and in the view. | more details | ElevationProfileLineQuery | |
String | more details The name of the class. | more details | Accessor | |
Point | more details Point being hovered in the chart, in the view's spatial reference. | more details | ElevationProfileLine | |
String | more details Unique identifier for the profile line. | more details | ElevationProfileLine | |
Number | more details How far along the generation of this profile is. | more details | ElevationProfileLine | |
ElevationProfileSample[] | more details List of samples that make up the elevation profile. | more details | ElevationProfileLine | |
Object | more details Elevation source used to sample elevation when generating the profile, for example an ElevationLayer. | more details | ElevationProfileLineQuery | |
ElevationProfileStatistics | more details Statistics about the generated elevation profile, if available. | more details | ElevationProfileLine | |
String | more details Title of the line, to be displayed in the chart tooltip and in the chart legend. | more details | ElevationProfileLine | |
String | more details The line type. | more details | ElevationProfileLineQuery | |
Boolean | more details Whether a line visualization representing elevationSamples should be added to the SceneView. | more details | ElevationProfileLineQuery | |
Boolean | more details Whether the line should be computed and shown in the chart. | more details | ElevationProfileLine |
Property Details
-
Color of the line on the chart and in the view.
- Default Value:#db334a
-
The name of the class. The declared class name is formatted as
esri.folder.className
.
-
Point being hovered in the chart, in the view's spatial reference.
-
Unique identifier for the profile line.
-
How far along the generation of this profile is. 0 means nothing was loaded and 1 means loading is complete.
-
-
List of samples that make up the elevation profile. It can be passed to a graphing library in order to display the profile in 2D.
-
source Object
-
Elevation source used to sample elevation when generating the profile, for example an ElevationLayer.
- Property:
-
queryElevation queryElevation
Function used to query elevation values for a geometry (Point, Multipoint or Polyline). It returns a promise that resolves with an ElevationQueryResult.
Example:const elevLayer = new ElevationLayer({ url: "https://sampleserver6.arcgisonline.com/arcgis/rest/.../Elevation/ImageServer" }); // profile line with elevation layer source const elevationProfile = new ElevationProfile({ view, profiles: [{ type: "query", // autocasts as new ElevationProfileLineQuery(), source: elevLayer }] }); // profile line with a source coming from an elevation // layer with a specific sampling resolution const elevationProfile = new ElevationProfile({ view, profiles: [{ type: "query", source: { queryElevation(geometry, options) { return elevLayer.queryElevation(geometry, { ...options, demResolution: 20 }) } } }] }); // profile line with a source that queries data // on an elevation sampler view.when(async() => { const sampler = await elevLayer.createElevationSampler(extent); const querySource = { queryElevation: async (geometry: Multipoint) => { return { geometry: await sampler.queryElevation(geometry), noDataValue: sampler.noDataValue }; } }; const elevationProfile = new ElevationProfile({ view, profiles: [{ type: "query", source: querySource }] }); });
-
-
Statistics about the generated elevation profile, if available. For slope computations profiles are sampled at a minimum sampling distance of 10m (32.8ft). Higher resolution profiles are downsampled to a 10m (32.8ft) sampling distance before the slope is calculated.
-
Title of the line, to be displayed in the chart tooltip and in the chart legend.
-
type Stringreadonly
-
The line type.
For ElevationProfileLineQuery the type is always "query".
-
viewVisualizationEnabled BooleanSince: ArcGIS API for JavaScript 4.20
-
Whether a line visualization representing elevationSamples should be added to the SceneView. This property doesn't apply to MapView.
- Default Value:true
-
Whether the line should be computed and shown in the chart.
- Default Value:true
Method Overview
Name | Return Type | Summary | Class | |
---|---|---|---|---|
more details Adds one or more handles which are to be tied to the lifecycle of the object. | more details | Accessor |
Method Details
-
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.
Type Definitions
-
queryElevation(geometry, options){Promise<ElevationQueryResult>}
-
Function used to query elevation values for a geometry (Point, Multipoint or Polyline). It returns a promise that resolves with an ElevationQueryResult.
Parameters:Specification:geometry Point|Multipoint|PolylineThe geometry to use for sampling elevation data.
options ObjectoptionalAdditional query options. See the table below.
Specification:optional Default Value: autoControls the horizontal resolution (cell size) in meters from which elevation data is sampled (defaults to
auto
). See the table below for more details on the different settings.demResolution Description auto
Automatically chooses an appropriate resolution for each coordinate of the input geometry. The current implementation will try to use the finest available resolution given that the total required number of tile requests does not exceed a certain maximum amount (currently 20). Note that this may result in values being sampled from different resolutions. finest-contiguous
Sample elevation from the finest available resolution (cell size) across the entire geometry. {number}
Sample elevation from the resolution closest to the specified resolution (in meters). returnSampleInfo BooleanoptionalDefault Value: falseIndicates whether to return additional sample information for each coordinate.
noDataValue NumberoptionalDefault Value: 0The value to use when there is no data available.
signal AbortSignaloptionalAn AbortSignal to abort the request. If canceled, the promise will be rejected with an error named
AbortError
. See also AbortController.Returns:Type Description Promise<ElevationQueryResult> Resolves to an object with the sampled geometry, resolution information, and no data value.