UNPKG

@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
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>; }