DistanceMeasurement2DViewModel
require(["esri/widgets/DistanceMeasurement2D/DistanceMeasurement2DViewModel"], function(DistanceMeasurement2DViewModel) { /* code goes here */ });
esri/widgets/DistanceMeasurement2D/DistanceMeasurement2DViewModel
Provides the logic for the DistanceMeasurement2D widget.
- See also:
Constructors
- new DistanceMeasurement2DViewModel(properties)
- Parameter:properties Objectoptional
See the properties for a list of all the properties that may be passed into the constructor.
Property Overview
Name | Type | Summary | Class | |
---|---|---|---|---|
Number | The threshold distance used by the "auto" mode to switch between planar and geodesic linear computations. more details | more details | DistanceMeasurement2DViewModel | |
Object | The length and geometry of the measurement polyline in meters. more details | more details | DistanceMeasurement2DViewModel | |
String | This property returns the locale specific representation of the length. more details | more details | DistanceMeasurement2DViewModel | |
String | The mode used to calculate the length of lines. more details | more details | DistanceMeasurement2DViewModel | |
String[] | An array of valid mode values. more details | more details | DistanceMeasurement2DViewModel | |
String | The view model's state. more details | more details | DistanceMeasurement2DViewModel | |
String | Unit system (imperial, metric) or specific unit used for displaying the distance values. more details | more details | DistanceMeasurement2DViewModel | |
String[] | List of available units and unit systems (imperial, metric) for displaying the distance values. more details | more details | DistanceMeasurement2DViewModel | |
MapView | The view from which the widget will operate. more details | more details | DistanceMeasurement2DViewModel |
Property Details
- geodesicDistanceThresholdNumber
The threshold distance used by the "auto" mode to switch between planar and geodesic linear computations. The threshold is measured in meters.
- Default Value:100000
Example:// To set the threshold at 10 km var measurementWidget = new DistanceMeasurement2D({ viewModel: { view: view, geodesicDistanceThreshold: 10000 } });
- measurementObjectreadonly
The length and geometry of the measurement polyline in meters.
- Properties:
- length Number
Line length (m).
geometry PolylineMeasurement line.
Example:// After creating and adding the DistanceMeasurement2D widget var measurementWidget = new DistanceMeasurement2D({ view: view }); view.ui.add(measurementWidget, "top-right"); // Raw measurements (in meters) can be accessed from this property measurementWidget.watch("viewModel.measurement", function(measurement) { console.log( "Length: ", measurement.length, "Geometry: ", measurement.geometry ); });
- measurementLabelStringreadonly
This property returns the locale specific representation of the length. Lengths are rounded to two decimal places. Lengths are sourced from the measurement property (in meters) and converted to the user defined units or system and mode.
Example:// After creating and adding the DistanceMeasurement2D widget var measurementWidget = new DistanceMeasurement2D({ view: view }); view.ui.add(measurementWidget, "top-right"); // The measurement label can be accessed from this property measurementWidget.watch("viewModel.measurementLabel", function(label) { console.log( "Label: ", label ); });
- modeString
The mode used to calculate the length of lines.
Possible Values: auto | planar | geodesic
- Default Value:auto
Example:// To create the DistanceMeasurement2D widget that uses geodesic computations var measurementWidget = new DistanceMeasurement2D({ viewModel: { view: view, mode: "geodesic" } }); // To display the current mode console.log("Current mode: ", measurementWidget.viewModel.mode);
- modesString[]readonly
An array of valid mode values. By default, the following units are included:
auto
,planar
,geodesic
.Example:// To display the available modes to the console var measurementWidget = new DistanceMeasurement2D({ view: view }); console.log("All modes: ", measurementWidget.viewModel.modes.join(", "));
- stateStringreadonly
The view model's state.
Possible Values: disabled | ready | measuring
Value Description disabled not ready yet ready ready for measuring measuring measuring has started - Default Value:disabled
Example:// To display the state of the DistanceMeasurement2D widget var measurementWidget = new DistanceMeasurement2D({ view: view }); measurementWidget.watch("viewModel.state", function(state){ console.log("Current state: ", state); });
- unitString
Unit system (imperial, metric) or specific unit used for displaying the distance values.
Possible Values: metric | imperial | inches | feet | us-feet | yards | miles | nautical-miles | meters | kilometers
Example:// To create the DistanceMeasurement2D widget that displays distance in yards var measurementWidget = new DistanceMeasurement2D({ viewModel: { view: view, unit: "yards" } }); // To display the current measurement unit console.log('Current unit: ', measurementWidget.viewModel.unit);
- unitOptionsString[]
List of available units and unit systems (imperial, metric) for displaying the distance values. By default, the following units are included:
metric
,imperial
,inches
,feet
,us-feet
,yards
,miles
,nautical-miles
,meters
,kilometers
.Example:// To display the available units to the console var measurementWidget = new DistanceMeasurement2D({ view: view }); console.log('All units: ', measurementWidget.viewModel.unitOptions.join(", "));
- viewMapView
The view from which the widget will operate.
Example:// To create DistanceMeasurement2D widget with the view property var measurementWidget = new DistanceMeasurement2D({ viewModel: { view: view } });
Method Overview
Name | Return Type | Summary | Class | |
---|---|---|---|---|
Clears the current measurement. more details | more details | DistanceMeasurement2DViewModel | ||
Starts a new measurement. more details | more details | DistanceMeasurement2DViewModel |
Method Details
- clearMeasurement()
Clears the current measurement.
- newMeasurement()
Starts a new measurement.