Provides the logic for the AreaMeasurement2D widget.
Constructors
-
new AreaMeasurement2DViewModel(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 | more details When the coordinate system is projected (other than web mercator) then perimeters less than this threshold will be computed planimetrically. | more details | AreaMeasurement2DViewModel | |
Object | more details The area and perimeter of the measurement polygon in square meters and meters respectively. | more details | AreaMeasurement2DViewModel | |
Object | more details This property returns the locale specific representation of the area and perimeter. | more details | AreaMeasurement2DViewModel | |
String | more details The ViewModel's state. | more details | AreaMeasurement2DViewModel | |
SystemOrAreaUnit | more details Unit system (imperial, metric) or specific unit used for displaying the area values. | more details | AreaMeasurement2DViewModel | |
SystemOrAreaUnit[] | more details List of available units and unit systems (imperial, metric) for displaying the area values. | more details | AreaMeasurement2DViewModel | |
MapView | more details The view from which the widget will operate. | more details | AreaMeasurement2DViewModel |
Property Details
-
geodesicDistanceThreshold Number
-
When the coordinate system is projected (other than web mercator) then perimeters less than this threshold will be computed planimetrically. Otherwise areas will be computed geodetically.
- Default Value:100000
Example:// To set the threshold at 10 km let measurementWidget = new AreaMeasurement2D({ viewModel: { view: view, geodesicDistanceThreshold: 10000 } });
-
measurement Objectreadonly
-
The area and perimeter of the measurement polygon in square meters and meters respectively.
- Properties:
-
area Number
The area (m²).
perimeter NumberThe perimeter (m).
geometry PolygonMeasurement area.
Example:// After creating and adding the AreaMeasurement2D widget let measurementWidget = new AreaMeasurement2D({ 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( "Area: ", measurement.area, "Perimeter: ", measurement.perimeter ); });
-
measurementLabel Objectreadonly
-
This property returns the locale specific representation of the area and perimeter. Areas and perimeters are rounded to two decimal places. Areas are sourced from the measurement property (in square meters) and converted to the user defined units/system.
Example:// After creating and adding the AreaMeasurement2D widget let measurementWidget = new AreaMeasurement2D({ view: view }); view.ui.add(measurementWidget, "top-right"); // Measurement labels can be accessed from this property measurementWidget.watch("viewModel.measurementLabel", function(label) { console.log( "Area: ", label.area, "Perimeter: ", label.perimeter ); });
-
state Stringreadonly
-
The ViewModel's state.
Value Description disabled not ready yet ready ready for measuring measuring measuring has started measured measuring has finished Possible Values:"disabled"|"ready"|"measuring"|"measured"
- Default Value:disabled
Example:// To display the state of the AreaMeasurement2D widget let measurementWidget = new AreaMeasurement2D({ view: view }); measurementWidget.watch("viewModel.state", function(state){ console.log("Current state: ", state); });
-
unit SystemOrAreaUnit
-
Unit system (imperial, metric) or specific unit used for displaying the area values. Possible values are listed in unitOptions.
Example:// To create the AreaMeasurement2D widget that displays area in square US feet let measurementWidget = new AreaMeasurement2D({ viewModel: { view: view, unit: "square-us-feet" } }); // To display the current measurement unit console.log('Current unit: ', measurementWidget.viewModel.unit);
-
unitOptions SystemOrAreaUnit[]
-
List of available units and unit systems (imperial, metric) for displaying the area values. By default, the following units are included:
metric
,imperial
,square-inches
,square-feet
,square-us-feet
,square-yards
,square-miles
,square-meters
,square-kilometers
,acres
,ares
,hectares
. Possible unit values can only be a subset of this list.Example:// To display the available units to the console let measurementWidget = new AreaMeasurement2D({ view: view }); console.log('All units: ', measurementWidget.viewModel.unitOptions.join(", "));
-
view MapView
-
The view from which the widget will operate.
Example:// To create the AreaMeasurement2D widget with the view property let measurementWidget = new AreaMeasurement2D({ viewModel: { view: view } });
Method Overview
Name | Return Type | Summary | Class | |
---|---|---|---|---|
more details Clears the current measurement. | more details | AreaMeasurement2DViewModel | ||
more details Starts a new measurement. | more details | AreaMeasurement2DViewModel |
Method Details
-
clear()Since: ArcGIS API for JavaScript 4.16
-
Clears the current measurement.
-
start()Since: ArcGIS API for JavaScript 4.16
-
Starts a new measurement.
Example:const areaMeasurement2DViewModel = new AreaMeasurement2DViewModel({ view: view, unit: "square-yards" }); await areaMeasurement2DViewModel.start();