Provides the logic for the AreaMeasurement2D widget.
Constructors
-
new AreaMeasurement2DViewModel(properties)
-
Parameterproperties 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 | When the coordinate system is projected (other than web mercator) then perimeters less than this threshold will be computed planimetrically. more details | AreaMeasurement2DViewModel | |
Object | The area and perimeter of the measurement polygon in square meters and meters respectively. more details | AreaMeasurement2DViewModel | |
Object | This property returns the locale specific representation of the area and perimeter. more details | AreaMeasurement2DViewModel | |
String | The ViewModel's state. more details | AreaMeasurement2DViewModel | |
SystemOrAreaUnit | Unit system (imperial, metric) or specific unit used for displaying the area values. more details | AreaMeasurement2DViewModel | |
SystemOrAreaUnit[] | List of available units and unit systems (imperial, metric) for displaying the area values. more details | AreaMeasurement2DViewModel | |
MapView | 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 |
---|---|---|---|
Clears the current measurement. more details | AreaMeasurement2DViewModel | ||
Starts a new measurement. more details | AreaMeasurement2DViewModel |
Method Details
-
clear()Since: ArcGIS Maps SDK for JavaScript 4.16
-
Clears the current measurement.
-
start()Since: ArcGIS Maps SDK for JavaScript 4.16
-
Starts a new measurement.
Exampleconst areaMeasurement2DViewModel = new AreaMeasurement2DViewModel({ view: view, unit: "square-yards" }); await areaMeasurement2DViewModel.start();