import ElevationProfileLineQuery from "@arcgis/core/analysis/ElevationProfile/ElevationProfileLineQuery.js";
const ElevationProfileLineQuery = await $arcgis.import("@arcgis/core/analysis/ElevationProfile/ElevationProfileLineQuery.js");
@arcgis/core/analysis/ElevationProfile/ElevationProfileLineQuery
Represents a profile line that samples elevation from a custom elevation source, such as an ElevationLayer, or from an elevation layer in ground.layers.
You can also provide a custom source object with a queryElevation
method that matches the signature of
queryElevation, allowing for flexible elevation sampling
strategies.
- See also
// Create an elevation profile analysis with a custom elevation layer as the source
const elevationLayer = new ElevationLayer({
url: "https://sampleserver6.arcgisonline.com/arcgis/rest/services/Elevation/MtBaldy_Elevation/ImageServer"
});
const analysis = new ElevationProfileAnalysis({
profiles: [{
type: "query",
source: elevationLayer
}]
});
Constructors
-
Parameterproperties Objectoptional
See the properties for a list of all the properties that may be passed into the constructor.
Property Overview
Name | Type | Summary | Class |
---|---|---|---|
Options for visualizing the profile line in a chart. | ElevationProfileLine | ||
Color of the line on the chart and in the view. | ElevationProfileLineQuery | ||
The name of the class. | Accessor | ||
Indicates whether the line should be computed and displayed in the chart and view. | ElevationProfileLine | ||
Unique identifier for the profile line. | ElevationProfileLine | ||
Elevation source used to sample elevation when generating the profile, for example an ElevationLayer. | ElevationProfileLineQuery | ||
Title of the line, shown in the chart tooltip and legend. | ElevationProfileLine | ||
The line type. | ElevationProfileLineQuery | ||
Options for visualizing the profile line in the view. | ElevationProfileLine |
Property Details
-
chartOptions
InheritedPropertychartOptions ElevationProfileLineChartOptionsautocast
Inherited from ElevationProfileLine -
Options for visualizing the profile line in a chart.
-
Color of the line on the chart and in the view.
- Default Value:"#db334a"
-
enabled
InheritedPropertyenabled Boolean
Inherited from ElevationProfileLine -
Indicates whether the line should be computed and displayed in the chart and view.
- Default Value:true
-
id
InheritedPropertyid String
Inherited from ElevationProfileLine -
Unique identifier for the profile line. This value is automatically generated unless specified.
-
source
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.
Examplesconst elevLayer = new ElevationLayer({ url: "https://sampleserver6.arcgisonline.com/arcgis/rest/.../Elevation/ImageServer" }); // profile line with elevation layer source const analysis1 = new ElevationProfileAnalysis({ 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 analysis2 = new ElevationProfileAnalysis({ 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 const sampler = await elevLayer.createElevationSampler(extent); const analysis3 = new ElevationProfileAnalysis({ profiles: [{ type: "query", source: { queryElevation: async (geometry: Multipoint) => { return { geometry: await sampler.queryElevation(geometry), noDataValue: sampler.noDataValue }; } } }] });
-
Inherited from ElevationProfileLine
-
Title of the line, shown in the chart tooltip and legend.
-
type
type Stringreadonly
-
The line type.
For ElevationProfileLineQuery the type is always "query".
-
viewOptions
InheritedPropertyviewOptions ElevationProfileLineViewOptionsautocast
Inherited from ElevationProfileLine -
Options for visualizing the profile line in the view.
Method Overview
Name | Return Type | Summary | Class |
---|---|---|---|
Adds one or more handles which are to be tied to the lifecycle of the object. | Accessor | ||
this | Creates a deep clone of this object. | ElevationProfileLine | |
Returns true if a named group of handles exist. | Accessor | ||
Removes a group of handles owned by the object. | Accessor |
Method Details
-
Inherited from Accessor
-
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.when( () => !view.updating, () => { wkidSelect.disabled = false; }, { once: true } ); this.addHandles(handle); // Destroy the object this.destroy();
ParametershandleOrHandles WatchHandle|WatchHandle[]Handles marked for removal once the object is destroyed.
groupKey *optionalKey identifying the group to which the handles should be added. All the handles in the group can later be removed with Accessor.removeHandles(). If no key is provided the handles are added to a default group.
-
Inherited from ElevationProfileLine
-
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.
ReturnsType Description this A deep clone of the class instance that invoked this method.
-
hasHandles
InheritedMethodhasHandles(groupKey){Boolean}
Inherited from Accessor -
Returns true if a named group of handles exist.
ParametergroupKey *optionalA group key.
ReturnsType Description Boolean Returns true
if a named group of handles exist.Example// Remove a named group of handles if they exist. if (obj.hasHandles("watch-view-updates")) { obj.removeHandles("watch-view-updates"); }
-
Inherited from Accessor
-
Removes a group of handles owned by the object.
ParametergroupKey *optionalA group key or an array or collection of group keys to remove.
Exampleobj.removeHandles(); // removes handles from default group obj.removeHandles("handle-group"); obj.removeHandles("other-handle-group");
Type Definitions
-
queryElevation
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.
ParametersSpecificationgeometry Point|Multipoint|PolylineThe geometry to use for sampling elevation data.
options ObjectoptionalAdditional query options. See the table below.
Specificationoptional 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 AbortSignal|null|undefinedoptionalAn AbortSignal to abort the request. If canceled, the promise will be rejected with an error named
AbortError
. See also AbortController.ReturnsType Description Promise<ElevationQueryResult> Resolves to an object with the sampled geometry, resolution information, and no data value.