@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
124 lines (122 loc) • 7.98 kB
TypeScript
import type Color from "../../Color.js";
import type ElevationProfileLine from "./ElevationProfileLine.js";
import type { ElevationProfileLineProperties } from "./ElevationProfileLine.js";
import type { ElevationQuerySource } from "./types.js";
import type { ColorLike } from "../../Color.js";
/** @deprecated since version 5.0. Use the [Elevation Profile component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-elevation-profile/) or [ElevationProfileLineQuery](https://developers.arcgis.com/javascript/latest/references/core/analysis/ElevationProfile/ElevationProfileLineQuery/) from [ElevationProfileAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/ElevationProfileAnalysis/) instead. For information on widget deprecation, read about [Esri's move to web components](https://developers.arcgis.com/javascript/latest/components-transition-plan/). */
export interface ElevationProfileLineQueryProperties extends ElevationProfileLineProperties, Partial<Pick<ElevationProfileLineQuery, "source">> {
/**
* Color of the line on the chart and in the view.
*
* @default "#db334a"
*/
color?: ColorLike;
/**
* Whether a line visualization representing [elevationSamples](https://developers.arcgis.com/javascript/latest/references/core/widgets/ElevationProfile/ElevationProfileLine/#samples)
* should be added to the [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/). This property doesn't apply to [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/).
*
* @default true
* @since 4.20
*/
viewVisualizationEnabled?: boolean;
}
/**
* Profile line which samples elevation from a custom elevation source, for example by creating a new
* [ElevationLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ElevationLayer/), or by using an elevation layer from [Ground.layers](https://developers.arcgis.com/javascript/latest/references/core/Ground/#layers).
*
* Additionally, you can create your own source object with a method called `queryElevation`, with the same signature as
* [ElevationLayer.queryElevation()](https://developers.arcgis.com/javascript/latest/references/core/layers/ElevationLayer/#queryElevation).
*
* @deprecated since version 5.0. Use the [Elevation Profile component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-elevation-profile/) or [ElevationProfileLineQuery](https://developers.arcgis.com/javascript/latest/references/core/analysis/ElevationProfile/ElevationProfileLineQuery/) from [ElevationProfileAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/ElevationProfileAnalysis/) instead. For information on widget deprecation, read about [Esri's move to web components](https://developers.arcgis.com/javascript/latest/components-transition-plan/).
* @since 4.18
* @see [ElevationProfile](https://developers.arcgis.com/javascript/latest/references/core/widgets/ElevationProfile/) widget - Deprecated since 5.0. Use the [Elevation Profile component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-elevation-profile/) instead.
* @see [ElevationProfileViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/ElevationProfile/ElevationProfileViewModel/) - Deprecated since 5.0. Use [ElevationProfileAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/ElevationProfileAnalysis/) instead.
* @see [ElevationProfileLineGround](https://developers.arcgis.com/javascript/latest/references/core/widgets/ElevationProfile/ElevationProfileLineGround/) - Deprecated since 5.0. Use [ElevationProfileLineGround](https://developers.arcgis.com/javascript/latest/references/core/analysis/ElevationProfile/ElevationProfileLineGround/) from [ElevationProfileAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/ElevationProfileAnalysis/) instead.
* @see [ElevationProfileLineInput](https://developers.arcgis.com/javascript/latest/references/core/widgets/ElevationProfile/ElevationProfileLineInput/) - Deprecated since 5.0. Use [ElevationProfileLineInput](https://developers.arcgis.com/javascript/latest/references/core/analysis/ElevationProfile/ElevationProfileLineInput/) from [ElevationProfileAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/ElevationProfileAnalysis/) instead.
* @see [ElevationProfileLineView](https://developers.arcgis.com/javascript/latest/references/core/widgets/ElevationProfile/ElevationProfileLineView/) - Deprecated since 5.0. Use [ElevationProfileLineScene](https://developers.arcgis.com/javascript/latest/references/core/analysis/ElevationProfile/ElevationProfileLineScene/) from [ElevationProfileAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/ElevationProfileAnalysis/) instead.
* @example
* 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
* }]
* });
*/
export default class ElevationProfileLineQuery extends ElevationProfileLine {
constructor(properties: ElevationProfileLineQueryProperties);
/**
* Color of the line on the chart and in the view.
*
* @default "#db334a"
*/
get color(): Color;
set color(value: ColorLike);
/**
* Elevation source used to sample elevation when generating the profile, for
* example an [ElevationLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ElevationLayer/).
*
* @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
* }]
* });
* });
*/
accessor source: ElevationQuerySource;
/** The line type. */
readonly type: "query";
/**
* Whether a line visualization representing [elevationSamples](https://developers.arcgis.com/javascript/latest/references/core/widgets/ElevationProfile/ElevationProfileLine/#samples)
* should be added to the [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/). This property doesn't apply to [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/).
*
* @default true
* @since 4.20
*/
accessor viewVisualizationEnabled: boolean;
}