MeasurementViewModel

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

提供测量微件的逻辑。阅读微件开发 - ViewModel 模式指南主题,以更好地了解如何使用此类。

另请参阅:

构造函数

new MeasurementViewModel(properties)
参数:
properties Object
optional

有关可能传递到构造函数中的所有属性的列表,请参阅属性

属性概述

可以设置、检索或侦听任何属性。请参阅使用属性主题。
显示继承的属性 隐藏继承的属性
名称 类型 描述 类:
String更多详情

指定要显示的当前测量工具。

更多详情MeasurementViewModel
AreaMeasurement2DViewModel|AreaMeasurement3DViewModel|DirectLineMeasurement3DViewModel|DistanceMeasurement2DViewModel更多详情

查看活动测量微件的模型。

更多详情MeasurementViewModel
SystemOrAreaUnit更多详情

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

更多详情MeasurementViewModel
String更多详情

类的名称。

更多详情Accessor
SystemOrLengthUnit更多详情

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

更多详情MeasurementViewModel
String更多详情

ViewModel 的状态。

更多详情MeasurementViewModel
MapView|SceneView更多详情

MapViewSceneView 的引用。

更多详情MeasurementViewModel

属性详细信息

activeTool String

指定要显示的当前测量工具。设置其值将 area 激活面积测量工具,并且该工具适用于 MapViewSceneView。要在 MapView 中测量距离,请将该属性设置为 distance,在 SceneView 中将其设置为 direct-line。如果未设置此属性,则不会显示微件。

可能值"area"|"distance"|"direct-line"

默认值:null
示例:
// To create the Measurement widget with SceneView's linear measurement widget active.
let measurement = new Measurement({
  viewModel: {
    view: view,
    activeTool: "direct-line"
  }
});

查看活动测量微件的模型。

示例:
// Print the active view model to the console.
let measurement = new Measurement({
  viewModel: {
    areaUnit: "square-us-feet",
    view: view,
    activeTool: "area"
  }
});
console.log("Active ViewModel: ", measurement.viewModel.activeViewModel);

单位制(英制、公制)或用于显示面积值的特定单位。可能的值为:metricimperialsquare-inchessquare-feetsquare-us-feetsquare-yardssquare-milessquare-meterssquare-kilometersacresareshectares

示例:
// To create the Measurement widget that displays area in square US feet
let measurement = new Measurement({
  viewModel: {
    areaUnit: "square-us-feet",
    view: view,
    activeTool: "area"
  }
});

// To display the current measurement unit for area
console.log("Current unit: ", measurement.viewModel.areaUnit);
declaredClass Stringreadonly inherited

类的名称。声明的类名格式为 geoscene.folder.className

单位制(英制、公制)或用于显示面积值的特定单位。可能的值为:metric, imperial, inches, feet, us-feet, yards, miles, nautical-miles, meters, kilometers.

示例:
// To create the Measurement widget that displays distance in yards
let measurement = new Measurement({
  viewModel: {
    linearUnit: "yards",
    view: view,
    activeTool: "distance"
  }
});

// To display the current measurement unit for distance
console.log('Current unit: ', measurement.viewModel.linearUnit);
state Stringreadonly

ViewModel 的状态。

说明
disabled 尚未准备就绪
ready 准备测量
measuring 测量已经开始
measured 测量已完成

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

默认值:disabled
示例:
// To display the state of the AreaMeasurement2D widget
let measurement = new Measurement({
  view: view,
  activeTool: "area"
});
measurement.watch("viewModel.state", function(state){
  console.log("Current state: ", state);
});

MapViewSceneView 的引用。

示例:
// Add the measurement widget to the upper right hand corner.
const measurement = new Measurement({
  viewModel: {
    view: view,
    activeTool = "distance";
  }
});
view.ui.add(measurement, "top-right");

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