AreaMeasurement2DViewModel

AMD: require(["geoscene/widgets/AreaMeasurement2D/AreaMeasurement2DViewModel"], (AreaMeasurement2DViewModel) => { /* code goes here */ });
ESM: import AreaMeasurement2DViewModel from "@geoscene/core/widgets/AreaMeasurement2D/AreaMeasurement2DViewModel";
类: geoscene/widgets/AreaMeasurement2D/AreaMeasurement2DViewModel
继承于:AreaMeasurement2DViewModel Accessor
起始版本:GeoScene API for JavaScript 4.10

AreaMeasurement2D 微件提供逻辑。

另请参阅:

构造函数

new AreaMeasurement2DViewModel(properties)
参数:
properties Object
可选

有关可能传递给构造函数的所有属性的列表,请参见属性

属性概览

Name 类型 描述
Number更多信息

当坐标系被投影时(除了 web 墨卡托),小于这个阈值的周长将被平面计算。

更多信息AreaMeasurement2DViewModel
Object更多信息

测量面的面积和周长分别以平方米和米为单位。

更多信息AreaMeasurement2DViewModel
Object更多信息

此属性返回区域和周长的区域设置特定表示。

更多信息AreaMeasurement2DViewModel
String更多信息

ViewModel 的状态。

更多信息AreaMeasurement2DViewModel
SystemOrAreaUnit更多信息

单位制(英制、公制)或用于显示面积值的特定单位。

更多信息AreaMeasurement2DViewModel
SystemOrAreaUnit[]更多信息

用于显示面积值的可用单位和单位系统(英制、公制)列表。

更多信息AreaMeasurement2DViewModel
MapView更多信息

微件将从中操作的视图。

更多信息AreaMeasurement2DViewModel

属性详情

geodesicDistanceThreshold Number

当坐标系被投影时(除了 web 墨卡托),小于这个阈值的周长将被平面计算。否则,面积将按大地测量计算。

默认值:100000
示例:
// To set the threshold at 10 km
let measurementWidget = new AreaMeasurement2D({
  viewModel: {
    view: view,
    geodesicDistanceThreshold: 10000
  }
});
measurement Objectreadonly

测量面的面积和周长分别以平方米和米为单位。

属性:
area Number

面积 (m²)。

perimeter Number

周长 (m)。

geometry Polygon

测量区域。

示例:
// 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

此属性返回区域和周长的区域设置特定表示。面积和周长四舍五入到小数点后两位。面积来自 measurement 属性(以平方米为单位)并转换为用户定义的单位/系统。

属性:
area Number

面积 (m²)。

perimeter Number

周长 (m)。

示例:
// 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

ViewModel 的状态。

说明
disabled 还没有准备好
ready 准备测量
measuring 测量已开始
measured 测量已结束

可能的值:"disabled"|"ready"|"measuring"|"measured"

默认值:disabled
示例:
// 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);
});

单位制(英制、公制)或用于显示面积值的特定单位。可能的值在 unitOptions 中列出。

示例:
// 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[]

用于显示面积值的可用单位和单位系统(英制、公制)列表。默认情况下,包括以下单位:metric, imperial, square-inches, square-feet, square-us-feet, square-yards, square-miles, square-meters, square-kilometers, acres, ares, hectares.可能的 unit 值只能是此列表的子集。

示例:
// To display the available units to the console
let measurementWidget = new AreaMeasurement2D({
  view: view
});
console.log('All units: ', measurementWidget.viewModel.unitOptions.join(", "));
view MapView

微件将从中操作的视图。

示例:
// To create the AreaMeasurement2D widget with the view property
let measurementWidget = new AreaMeasurement2D({
  viewModel: {
    view: view
  }
});

方法概览

名称 返回类型 描述
更多信息

清除当前测量。

更多信息AreaMeasurement2DViewModel
更多信息

开始新的测量。

更多信息AreaMeasurement2DViewModel

方法详情

clear()
起始版本:GeoScene API for JavaScript 4.16

清除当前测量。

start()
起始版本:GeoScene API for JavaScript 4.16

开始新的测量。

示例:
const areaMeasurement2DViewModel = new AreaMeasurement2DViewModel({
  view: view,
  unit: "square-yards"
});

await areaMeasurement2DViewModel.start();

您的浏览器已不再受支持。请升级您的浏览器以获得最佳体验。有关更多详细信息,请参阅 我们的浏览器弃用帖