Skip to content
导览

测量管理器 MeasureManager

测量管理器是用于控制云渲染测量的工具,通过获取该管理器,用户可以方便地进行测量的控制和管理。 该工具的主要功能包括:

  1. 开启测量工具
  2. 两点测量
  3. 连续测量
  4. 高度测量
  5. 净距测量
  6. 角度测量
  7. 面积测量
  8. 清除测量线
  9. 终止绘制操作
  10. 设置测量选中的回调函数
  11. 设置测量完成的回调函数

我们将提供详细的使用指南和功能说明,帮助用户更好地使用该工具。

MeasureManager

用户可以调用云渲染实例 cloud 上的 getMeasureManager() 方法来获取 MeasureManager 测量管理器。

ts
const measureManager = await cloud.getMeasureManager()
const measureManager = await cloud.getMeasureManager()

用户调用 cloud.getMeasureManager() 后,measureManager 会被自动挂载到当前 cloud 实例上。

ts
await cloud.getMeasureManager()
const measureManager = cloud.measureManager
await cloud.getMeasureManager()
const measureManager = cloud.measureManager

两点测量 | drawTwopointMeasure

  • 说明:两点测量功能

我们可以调用 measureManager 上面的 drawTwopointMeasure 方法来进行两点测量。

  • 参数说明
NameTypeDescription
layerNamenull | string层名(选填)
measureConfignull | measureConfig测量参数(选填)

两点测量(drawTwopointMeasure)

两点测量drawTwopointMeasure,也称为距离测量或线性测量,通过依次选择两个点,以此得到模型中这两个点的线性距离,需要注意的是启用两点测量时,严格按照数据格式measureConfig 进行参数传递。

调用示例:

ts
const measureManager = await cloud.getMeasureManager()
const unit1: unitConfig = {
  lengthUnit: 'm',
  areaUnit: 'm2',
  angularUnits: 'decimalDegrees',
}
const font1: fontStyle = {
  fontSize: 16,
  typeface: '宋体',
  fillColor: '0xff000000',
  OutlineColor: '0xff000000',
  OutlineSize: 0,
}
const config: measureConfig
= {
  snapPoints: true,
  Accuracy: 3,
  unit: unit1,
  style:
{
  lineColor: '0xFFFF8800',
  polygonColor: '0x88ffff00',
  measureLableStyle:
  {
    backgroundColor: '0xffffff00',
    frameColor: '0x00ffffff',
    frontStyle: font1,
    ShowByDistance: [0, 20],
  },
},
}
await measureManager.drawTwopointMeasure('cc', config)
const measureManager = await cloud.getMeasureManager()
const unit1: unitConfig = {
  lengthUnit: 'm',
  areaUnit: 'm2',
  angularUnits: 'decimalDegrees',
}
const font1: fontStyle = {
  fontSize: 16,
  typeface: '宋体',
  fillColor: '0xff000000',
  OutlineColor: '0xff000000',
  OutlineSize: 0,
}
const config: measureConfig
= {
  snapPoints: true,
  Accuracy: 3,
  unit: unit1,
  style:
{
  lineColor: '0xFFFF8800',
  polygonColor: '0x88ffff00',
  measureLableStyle:
  {
    backgroundColor: '0xffffff00',
    frameColor: '0x00ffffff',
    frontStyle: font1,
    ShowByDistance: [0, 20],
  },
},
}
await measureManager.drawTwopointMeasure('cc', config)

连续测量 | drawContinuousMeasure

  • 说明:连续测量功能

我们可以调用 measureManager 上面的 drawContinuousMeasure 方法来进行模型的连续测量。

  • 参数说明
NameTypeDescription
layerNamenull | string层名(选填)
measureConfignull | measureConfig测量参数(选填)

连续测量(drawContinuousMeasure)

连续测量drawContinuousMeasure,依次选择多个点,按选择顺序得到多点之间的累加距离,需要注意的是启用连续测量时,严格按照数据格式measureConfig 进行参数传递。

调用示例:

ts
const measureManager = await cloud.getMeasureManager()
const unit1: unitConfig = {
  lengthUnit: 'm',
  areaUnit: 'm2',
  angularUnits: 'decimalDegrees',
}
const font1: fontStyle = {
  fontSize: 16,
  typeface: '宋体',
  fillColor: '0xff000000',
  OutlineColor: '0xff000000',
  OutlineSize: 0,
}
const config: measureConfig
= {
  snapPoints: true,
  Accuracy: 3,
  unit: unit1,
  style:
{
  lineColor: '0xFFFF8800',
  polygonColor: '0x88ffff00',
  measureLableStyle:
  {
    backgroundColor: '0xffffff00',
    frameColor: '0x00ffffff',
    frontStyle: font1,
    ShowByDistance: [0, 20],
  },
},
}
await measureManager.drawContinuousMeasure('cc', config)
const measureManager = await cloud.getMeasureManager()
const unit1: unitConfig = {
  lengthUnit: 'm',
  areaUnit: 'm2',
  angularUnits: 'decimalDegrees',
}
const font1: fontStyle = {
  fontSize: 16,
  typeface: '宋体',
  fillColor: '0xff000000',
  OutlineColor: '0xff000000',
  OutlineSize: 0,
}
const config: measureConfig
= {
  snapPoints: true,
  Accuracy: 3,
  unit: unit1,
  style:
{
  lineColor: '0xFFFF8800',
  polygonColor: '0x88ffff00',
  measureLableStyle:
  {
    backgroundColor: '0xffffff00',
    frameColor: '0x00ffffff',
    frontStyle: font1,
    ShowByDistance: [0, 20],
  },
},
}
await measureManager.drawContinuousMeasure('cc', config)

高度测量 | drawVerticalMeasure

  • 说明:高度测量功能

我们可以调用 measureManager 上面的 drawVerticalMeasure 方法来进行模型的高度测量。

  • 参数说明
NameTypeDescription
layerNamenull | string层名(选填)
referenceHeightnull | number-
measureConfignull | measureConfig测量参数(选填)

调用示例:

ts
const measureManager = await cloud.getMeasureManager()
const unit1: unitConfig = {
  lengthUnit: 'm',
  areaUnit: 'm2',
  angularUnits: 'decimalDegrees',
}
const font1: fontStyle = {
  fontSize: 16,
  typeface: '宋体',
  fillColor: '0xff000000',
  OutlineColor: '0xff000000',
  OutlineSize: 0,
}
const config: measureConfig
= {
  snapPoints: true,
  Accuracy: 3,
  unit: unit1,
  style:
{
  lineColor: '0xFFFF8800',
  polygonColor: '0x88ffff00',
  measureLableStyle:
  {
    backgroundColor: '0xffffff00',
    frameColor: '0x00ffffff',
    frontStyle: font1,
    ShowByDistance: [0, 20],
  },
},
}
await measureManager.drawVerticalMeasure('aa', 0, config)
const measureManager = await cloud.getMeasureManager()
const unit1: unitConfig = {
  lengthUnit: 'm',
  areaUnit: 'm2',
  angularUnits: 'decimalDegrees',
}
const font1: fontStyle = {
  fontSize: 16,
  typeface: '宋体',
  fillColor: '0xff000000',
  OutlineColor: '0xff000000',
  OutlineSize: 0,
}
const config: measureConfig
= {
  snapPoints: true,
  Accuracy: 3,
  unit: unit1,
  style:
{
  lineColor: '0xFFFF8800',
  polygonColor: '0x88ffff00',
  measureLableStyle:
  {
    backgroundColor: '0xffffff00',
    frameColor: '0x00ffffff',
    frontStyle: font1,
    ShowByDistance: [0, 20],
  },
},
}
await measureManager.drawVerticalMeasure('aa', 0, config)

净距测量 | drawClearDistanceMeasure

  • 说明:净距测量功能

我们可以调用 measureManager 上面的 drawClearDistanceMeasure 方法来进行模型的净距测量。

  • 参数说明
NameTypeDescription
layerNamenull | string层名(选填)
measureConfignull | measureConfig测量参数(选填)

净距测量(drawClearDistanceMeasure)

净距测量drawClearDistanceMeasure ,当前选择点到与当前选择点所在平面垂直的直线经过的最近的模型的距离,需要注意的是启用净距测量时,严格按照数据格式measureConfig 进行参数传递。

调用示例:

ts
const measureManager = await cloud.getMeasureManager()
const unit1: unitConfig = {
  lengthUnit: 'm',
  areaUnit: 'm2',
  angularUnits: 'decimalDegrees',
}
const font1: fontStyle = {
  fontSize: 16,
  typeface: '宋体',
  fillColor: '0xff000000',
  OutlineColor: '0xff000000',
  OutlineSize: 0,
}
const config: measureConfig
= {
  snapPoints: true,
  Accuracy: 3,
  unit: unit1,
  style:
{
  lineColor: '0xFFFF8800',
  polygonColor: '0x88ffff00',
  measureLableStyle:
  {
    backgroundColor: '0xffffff00',
    frameColor: '0x00ffffff',
    frontStyle: font1,
    ShowByDistance: [0, 20],
  },
},
}
await measureManager.drawClearDistanceMeasure('aa', config)
const measureManager = await cloud.getMeasureManager()
const unit1: unitConfig = {
  lengthUnit: 'm',
  areaUnit: 'm2',
  angularUnits: 'decimalDegrees',
}
const font1: fontStyle = {
  fontSize: 16,
  typeface: '宋体',
  fillColor: '0xff000000',
  OutlineColor: '0xff000000',
  OutlineSize: 0,
}
const config: measureConfig
= {
  snapPoints: true,
  Accuracy: 3,
  unit: unit1,
  style:
{
  lineColor: '0xFFFF8800',
  polygonColor: '0x88ffff00',
  measureLableStyle:
  {
    backgroundColor: '0xffffff00',
    frameColor: '0x00ffffff',
    frontStyle: font1,
    ShowByDistance: [0, 20],
  },
},
}
await measureManager.drawClearDistanceMeasure('aa', config)

角度测量 | drawAngularMeasure

  • 说明:角度测量功能

我们可以调用 measureManager 上面的 drawAngularMeasure 方法来进行模型的角度测量。

  • 参数说明
NameTypeDescription
layerNamenull | string层名(选填)
measureConfignull | measureConfig测量参数(选填)

调用示例:

ts
const measureManager = await cloud.getMeasureManager()
const unit1: unitConfig = {
  lengthUnit: 'm',
  areaUnit: 'm2',
  angularUnits: 'decimalDegrees',
}
const font1: fontStyle = {
  fontSize: 16,
  typeface: '宋体',
  fillColor: '0xff000000',
  OutlineColor: '0xff000000',
  OutlineSize: 0,
}
const config: measureConfig
= {
  snapPoints: true,
  Accuracy: 3,
  unit: unit1,
  style:
{
  lineColor: '0xFFFF8800',
  polygonColor: '0x88ffff00',
  measureLableStyle:
  {
    backgroundColor: '0xffffff00',
    frameColor: '0x00ffffff',
    frontStyle: font1,
    ShowByDistance: [0, 20],
  },
},
}
await measureManager.drawAngularMeasure('aa', config)
const measureManager = await cloud.getMeasureManager()
const unit1: unitConfig = {
  lengthUnit: 'm',
  areaUnit: 'm2',
  angularUnits: 'decimalDegrees',
}
const font1: fontStyle = {
  fontSize: 16,
  typeface: '宋体',
  fillColor: '0xff000000',
  OutlineColor: '0xff000000',
  OutlineSize: 0,
}
const config: measureConfig
= {
  snapPoints: true,
  Accuracy: 3,
  unit: unit1,
  style:
{
  lineColor: '0xFFFF8800',
  polygonColor: '0x88ffff00',
  measureLableStyle:
  {
    backgroundColor: '0xffffff00',
    frameColor: '0x00ffffff',
    frontStyle: font1,
    ShowByDistance: [0, 20],
  },
},
}
await measureManager.drawAngularMeasure('aa', config)

面积测量 | drawAreaMeasure

  • 说明:面积测量功能

我们可以调用 measureManager 上面的 drawAreaMeasure 方法来进行模型的面积测量。

  • 参数说明
NameTypeDescription
layerNamenull | string层名(选填)
measureConfignull | measureConfig测量参数(选填)

调用示例:

ts
const measureManager = await cloud.getMeasureManager()
const unit1: unitConfig = {
  lengthUnit: 'm',
  areaUnit: 'm2',
  angularUnits: 'decimalDegrees',
}
const font1: fontStyle = {
  fontSize: 16,
  typeface: '宋体',
  fillColor: '0xff000000',
  OutlineColor: '0xff000000',
  OutlineSize: 0,
}
const config: measureConfig
= {
  snapPoints: true,
  Accuracy: 3,
  unit: unit1,
  style:
{
  lineColor: '0xFFFF8800',
  polygonColor: '0x88ffff00',
  measureLableStyle:
  {
    backgroundColor: '0xffffff00',
    frameColor: '0x00ffffff',
    frontStyle: font1,
    ShowByDistance: [0, 20],
  },
},
}
await measureManager.drawAreaMeasure('cc', config)
const measureManager = await cloud.getMeasureManager()
const unit1: unitConfig = {
  lengthUnit: 'm',
  areaUnit: 'm2',
  angularUnits: 'decimalDegrees',
}
const font1: fontStyle = {
  fontSize: 16,
  typeface: '宋体',
  fillColor: '0xff000000',
  OutlineColor: '0xff000000',
  OutlineSize: 0,
}
const config: measureConfig
= {
  snapPoints: true,
  Accuracy: 3,
  unit: unit1,
  style:
{
  lineColor: '0xFFFF8800',
  polygonColor: '0x88ffff00',
  measureLableStyle:
  {
    backgroundColor: '0xffffff00',
    frameColor: '0x00ffffff',
    frontStyle: font1,
    ShowByDistance: [0, 20],
  },
},
}
await measureManager.drawAreaMeasure('cc', config)

清除测量线 | clearMeasureLine

  • 说明:清除测量线功能

我们可以调用 measureManager 上面的 drawAreaMeasure 方法来清除测量线。

调用示例:

ts
const measureManager = await cloud.getMeasureManager()
await measureManager.clearMeasureLine()
const measureManager = await cloud.getMeasureManager()
await measureManager.clearMeasureLine()

终止绘制操作 | stopDrawing

  • 说明:终止绘制操作功能

我们可以调用 measureManager 上面的 stopDrawing 方法来终止绘制操作。

调用示例:

ts
const measureManager = await cloud.getMeasureManager()
await measureManager.stopDrawing()
const measureManager = await cloud.getMeasureManager()
await measureManager.stopDrawing()

设置测量选中的回调函数 | setMeasureSelected

  • 说明:设置测量选中的回调函数

我们可以调用 measureManager 上面的 setMeasureSelected 方法来设置测量选中的回调函数。

  • 参数说明
NameTypeDescription
fn(measure: MeasureLine) => void回调函数,measure为测量线对象(必填)

调用示例:

ts
cloud.measureManager.setMeasureSelected(MeasureSelected)
function MeasureSelected(re: MeasureLine) {
  (window as any).root = re
  console.log(re)
}
cloud.measureManager.setMeasureSelected(MeasureSelected)
function MeasureSelected(re: MeasureLine) {
  (window as any).root = re
  console.log(re)
}

设置测量完成的回调函数 | setMeasureFinished

  • 说明:设置测量完成的回调函数

我们可以调用 measureManager 上面的 setMeasureFinished 方法来设置测量完成的回调函数。

  • 参数说明
NameTypeDescription
fn(measure: MeasureLine) => void回调函数,measure为测量线对象(必填)

调用示例:

ts
function MeasureFinished(re: MeasureLine) {
  (window as any).root = re
  console.log(re)
}
cloud.measureManager.setMeasureFinished(MeasureFinished)
function MeasureFinished(re: MeasureLine) {
  (window as any).root = re
  console.log(re)
}
cloud.measureManager.setMeasureFinished(MeasureFinished)