@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
102 lines (101 loc) • 5.88 kB
TypeScript
import type DistanceMeasurementAnalysis from "../../../analysis/DistanceMeasurementAnalysis.js";
import type AnalysisView2D from "./AnalysisView2D.js";
import type SnappingOptions from "../../interactive/snapping/SnappingOptions.js";
import type { AbortOptions } from "../../../core/promiseUtils.js";
import type { SystemOrLengthUnit } from "../../../core/units.js";
import type { DistanceMeasurementPlacementResult, DistanceMeasurementResult } from "../../analysis/DistanceMeasurement/types.js";
import type { SnappingOptionsProperties } from "../../interactive/snapping/SnappingOptions.js";
/**
* Represents the analysis view of an [DistanceMeasurementAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/DistanceMeasurementAnalysis/)
* after it has been added to [MapView.analyses](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#analyses).
*
* DistanceMeasurementAnalysisView2D is responsible for the rendering, computing and interacting with
* [DistanceMeasurementAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/DistanceMeasurementAnalysis/).
* The [result](https://developers.arcgis.com/javascript/latest/references/core/views/2d/analysis/DistanceMeasurementAnalysisView2D/#result) property contains the computed distance as well as the analytical method.
*
* Use the [place()](https://developers.arcgis.com/javascript/latest/references/core/views/2d/analysis/DistanceMeasurementAnalysisView2D/#place) method to initiate the interactive digitization of DistanceMeasurementAnalysis geometry.
*
* To enable modification of an existing DistanceMeasurementAnalysis geometry, set the [interactive](https://developers.arcgis.com/javascript/latest/references/core/views/2d/analysis/DistanceMeasurementAnalysisView2D/#interactive) property to `true`.
*
* Use [MapView.whenAnalysisView()](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#whenAnalysisView) to obtain the analysis view of an existing analysis.
* This is conceptually similar to how layer views are retrieved for layers using [MapView.whenLayerView()](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#whenLayerView).
*
* ```js
* // Retrieve analysis view for analysis
* const analysis = new DistanceMeasurementAnalysis();
* view.analyses.add(analysis); // add to the view
* const analysisView = await view.whenAnalysisView(analysis);
* ```
*
* @since 5.0
*/
export default abstract class DistanceMeasurementAnalysisView2D extends AnalysisView2D {
/**
* The distance measurement analysis associated with the analysis view.
*
* @since 5.0
*/
get analysis(): DistanceMeasurementAnalysis;
/**
* Enables interactivity for the [analysis](https://developers.arcgis.com/javascript/latest/references/core/views/2d/analysis/DistanceMeasurementAnalysisView2D/#analysis). When set to `true` the input geometry can be edited interactively.
*
* @default false
* @since 5.0
*/
accessor interactive: boolean;
/**
* Result of the distance measurement analysis. The result object is created immediately and updated as the
* measurement is computed.
*
* @since 5.0
*/
get result(): DistanceMeasurementResult | null | undefined;
/**
* The [SnappingOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/snapping/SnappingOptions/) for sketching.
* It supports [self](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/snapping/SnappingOptions/#selfEnabled) and
* [feature](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/snapping/SnappingOptions/#featureEnabled) snapping.
*
* @since 5.0
*/
get snappingOptions(): SnappingOptions;
set snappingOptions(value: SnappingOptionsProperties);
/**
* The analysis view type.
*
* @since 5.0
*/
get type(): "distance-measurement-view-2d";
/**
* Unit system (imperial, metric) or specific unit used for displaying the computed length in the view. This value is
* useful when [DistanceMeasurementAnalysis.unit](https://developers.arcgis.com/javascript/latest/references/core/analysis/DistanceMeasurementAnalysis/#unit) is not explicitly set on the
* [analysis](https://developers.arcgis.com/javascript/latest/references/core/views/2d/analysis/DistanceMeasurementAnalysisView2D/#analysis).
*
* @since 5.0
*/
get unit(): SystemOrLengthUnit;
/**
* This property is `true` when the analysis is recomputing or updating its visualization.
*
* @since 5.0
*/
get updating(): boolean;
/**
* When `true`, the [analysis](https://developers.arcgis.com/javascript/latest/references/core/views/2d/analysis/DistanceMeasurementAnalysisView2D/#analysis) is visualized in the view.
*
* @since 5.0
*/
accessor visible: boolean;
/**
* Starts an interactive placement operation to create a new [DistanceMeasurementAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/DistanceMeasurementAnalysis/).
*
* The placement operation will finish when the user presses the escape key, double taps, or double clicks.
* To stop the placing programmatically, pass an abort signal as an argument when calling the method.
*
* When placement operation completes successfully, the analysis will have a valid [DistanceMeasurementAnalysis.geometry](https://developers.arcgis.com/javascript/latest/references/core/analysis/DistanceMeasurementAnalysis/#geometry).
*
* @param options - An object specifying additional options.
* @returns A promise which resolves when the operation is completed successfully or rejected if it is canceled.
* @since 5.0
*/
place(options?: AbortOptions | null | undefined): Promise<DistanceMeasurementPlacementResult>;
}