AreaMeasurement2DViewModel
require(["esri/widgets/AreaMeasurement2D/AreaMeasurement2DViewModel"], function(AreaMeasurement2DViewModel) { /* code goes here */ });
esri/widgets/AreaMeasurement2D/AreaMeasurement2DViewModel
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 | When the coordinate sustem is projected (other than web mercator) then perimeters less than this threshold will be computed planimetrically. more details | more details | AreaMeasurement2DViewModel | |
Object | The area and perimeter of the measurement polygon in square meters and meters respectively. more details | more details | AreaMeasurement2DViewModel | |
Object | This property returns the locale specific representation of the area and perimeter. more details | more details | AreaMeasurement2DViewModel | |
String | The ViewModel's state. more details | more details | AreaMeasurement2DViewModel | |
String | Unit system (imperial, metric) or specific unit used for displaying the area values. more details | more details | AreaMeasurement2DViewModel | |
String[] | List of available units and unit systems (imperial, metric) for displaying the area values. more details | more details | AreaMeasurement2DViewModel | |
MapView | The view from which the widget will operate. more details | more details | AreaMeasurement2DViewModel |
Property Details
- geodesicDistanceThreshold Number
When the coordinate sustem 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 var 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 var 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 var 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 var measurementWidget = new AreaMeasurement2D({ view: view }); measurementWidget.watch("viewModel.state", function(state){ console.log("Current state: ", state); });
- unit String
Unit system (imperial, metric) or specific unit used for displaying the area values.
Possible Values:"metric"|"imperial"|"square-inches"|"square-feet"|"square-us-feet"|"square-yards"|"square-miles"|"square-meters"|"square-kilometers"|"acres"|"ares"|"hectares"
Example:// To create the AreaMeasurement2D widget that displays area in square US feet var measurementWidget = new AreaMeasurement2D({ viewModel: { view: view, unit: "square-us-feet" } }); // To display the current measurement unit console.log('Current unit: ', measurementWidget.viewModel.unit);
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 Values:"metric"|"imperial"|"square-inches"|"square-feet"|"square-us-feet"|"square-yards"|"square-miles"|"square-meters"|"square-kilometers"|"acres"|"ares"|"hectares"
Example:// To display the available units to the console var 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 var measurementWidget = new AreaMeasurement2D({ viewModel: { view: view } });
Method Overview
Name | Return Type | Summary | Class | |
---|---|---|---|---|
Clears the current measurement. more details | more details | AreaMeasurement2DViewModel | ||
Starts a new measurement. more details | more details | AreaMeasurement2DViewModel |
Method Details
- clearMeasurement()
Clears the current measurement.
- newMeasurement()
Starts a new measurement.
Example:const areaMeasurement2DViewModel = new AreaMeasurement2DViewModel({ view: view, unit: "square-yards" }); function measure () { console.log("AreaMeasurement2DViewModel: ", areaMeasurement2DViewModel); areaMeasurement2DViewModel.newMeasurement(); } measure();