Skip to content
导览

Class: MeasureManager

测量管理类

Details

开启测量工具,两点、连续、净距、高度、角度、面积测量

Examples

js
const measureManager = await cloud.getMeasureManager()   // 在CreateApp时调用
const measureManager = await cloud.getMeasureManager()   // 在CreateApp时调用

Hierarchy

  • Callable

    MeasureManager

Methods

drawTwopointMeasure

drawTwopointMeasure(layerName, measureConfig): Promise<any>

Details

两点测量

Examples

调用示例:

js
var 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',
    lineSize: 0.05,
    polygonColor: '0x88ffff00',
    measureLableStyle:
    {
      backgroundColor: '0xffffff00',
      frameColor: '0x00ffffff',
      frontStyle: font1,
      ShowByDistance: [0, 20],
    },
  },
}
await measureManager.drawTwopointMeasure('cc', config)
var 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',
    lineSize: 0.05,
    polygonColor: '0x88ffff00',
    measureLableStyle:
    {
      backgroundColor: '0xffffff00',
      frameColor: '0x00ffffff',
      frontStyle: font1,
      ShowByDistance: [0, 20],
    },
  },
}
await measureManager.drawTwopointMeasure('cc', config)

Parameters

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

Returns

Promise<any>


drawContinuousMeasure

drawContinuousMeasure(layerName, measureConfig): Promise<any>

Details

连续测量

Examples

调用示例:

js
var 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',
    lineSize: 0.05,
    polygonColor: '0x88ffff00',
    measureLableStyle:
    {
      backgroundColor: '0xffffff00',
      frameColor: '0x00ffffff',
      frontStyle: font1,
      ShowByDistance: [0, 20],
    },
  },
}
await measureManager.drawContinuousMeasure('cc', config)
var 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',
    lineSize: 0.05,
    polygonColor: '0x88ffff00',
    measureLableStyle:
    {
      backgroundColor: '0xffffff00',
      frameColor: '0x00ffffff',
      frontStyle: font1,
      ShowByDistance: [0, 20],
    },
  },
}
await measureManager.drawContinuousMeasure('cc', config)

Parameters

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

Returns

Promise<any>


drawVerticalMeasure

drawVerticalMeasure(layerName, referenceHeight, measureConfig): Promise<any>

Details

高度测量

Examples

调用示例:

js
var 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',
    lineSize: 0.05,
    polygonColor: '0x88ffff00',
    measureLableStyle:
    {
      backgroundColor: '0xffffff00',
      frameColor: '0x00ffffff',
      frontStyle: font1,
      ShowByDistance: [0, 20],
    },
  },
}
await measureManager.drawVerticalMeasure('aa', 0, config)
var 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',
    lineSize: 0.05,
    polygonColor: '0x88ffff00',
    measureLableStyle:
    {
      backgroundColor: '0xffffff00',
      frameColor: '0x00ffffff',
      frontStyle: font1,
      ShowByDistance: [0, 20],
    },
  },
}
await measureManager.drawVerticalMeasure('aa', 0, config)

Parameters

NameTypeDescription
layerNamenull | string层名(选填)
referenceHeightnull | number基准面高度(为空则不设置基准面)
measureConfignull | measureConfig测量参数(选填)

Returns

Promise<any>


drawClearDistanceMeasure

drawClearDistanceMeasure(layerName, measureConfig): Promise<any>

Details

净距测量

Examples

调用示例:

js
var 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',
    lineSize: 0.05,
    polygonColor: '0x88ffff00',
    measureLableStyle:
    {
      backgroundColor: '0xffffff00',
      frameColor: '0x00ffffff',
      frontStyle: font1,
      ShowByDistance: [0, 20],
    },
  },
}
await measureManager.drawClearDistanceMeasure('aa', config)
var 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',
    lineSize: 0.05,
    polygonColor: '0x88ffff00',
    measureLableStyle:
    {
      backgroundColor: '0xffffff00',
      frameColor: '0x00ffffff',
      frontStyle: font1,
      ShowByDistance: [0, 20],
    },
  },
}
await measureManager.drawClearDistanceMeasure('aa', config)

Parameters

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

Returns

Promise<any>


drawAngularMeasure

drawAngularMeasure(layerName, measureConfig): Promise<any>

Details

角度测量

Examples

调用示例:

js
var 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',
    lineSize: 0.05,
    polygonColor: '0x88ffff00',
    measureLableStyle:
    {
      backgroundColor: '0xffffff00',
      frameColor: '0x00ffffff',
      frontStyle: font1,
      ShowByDistance: [0, 20],
    },
  },
}
await measureManager.drawAngularMeasure('aa', config)
var 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',
    lineSize: 0.05,
    polygonColor: '0x88ffff00',
    measureLableStyle:
    {
      backgroundColor: '0xffffff00',
      frameColor: '0x00ffffff',
      frontStyle: font1,
      ShowByDistance: [0, 20],
    },
  },
}
await measureManager.drawAngularMeasure('aa', config)

Parameters

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

Returns

Promise<any>


drawAreaMeasure

drawAreaMeasure(layerName, measureConfig): Promise<any>

Details

面积测量

Examples

调用示例:

js
var 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',
    lineSize: 0.05,
    polygonColor: '0x88ffff00',
    measureLableStyle:
    {
      backgroundColor: '0xffffff00',
      frameColor: '0x00ffffff',
      frontStyle: font1,
      ShowByDistance: [0, 20],
    },
  },
}
await measureManager.drawAreaMeasure('cc', config)
var 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',
    lineSize: 0.05,
    polygonColor: '0x88ffff00',
    measureLableStyle:
    {
      backgroundColor: '0xffffff00',
      frameColor: '0x00ffffff',
      frontStyle: font1,
      ShowByDistance: [0, 20],
    },
  },
}
await measureManager.drawAreaMeasure('cc', config)

Parameters

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

Returns

Promise<any>


clearMeasureLine

clearMeasureLine(): Promise<any>

Details

清除测量线

Examples

调用示例:

js
var measureManager = await cloud.getMeasureManager()
await measureManager.clearMeasureLine()
var measureManager = await cloud.getMeasureManager()
await measureManager.clearMeasureLine()

Returns

Promise<any>


stopDrawing

stopDrawing(): Promise<any>

Details

终止绘制操作

Examples

调用示例:

js
var measureManager = await cloud.getMeasureManager()
await measureManager.stopDrawing()
var measureManager = await cloud.getMeasureManager()
await measureManager.stopDrawing()

Returns

Promise<any>


getAllLayer

getAllLayer(): Promise<MeasureLayer[]>

Details

获取层对象的list

Examples

调用示例:

js
var measureManager = await cloud.getMeasureManager()
var layerList = await measureManager.getAllLayer()
var measureManager = await cloud.getMeasureManager()
var layerList = await measureManager.getAllLayer()

Returns

Promise<MeasureLayer[]>

所有的层对象


removeLayer

removeLayer(layerList): Promise<boolean>

Details

批量删除层

Examples

调用示例:

js
var measureManager = await cloud.getMeasureManager()
var layerList = await measureManager.getAllLayer()
await measureManager.removeLayer(layerList)
var measureManager = await cloud.getMeasureManager()
var layerList = await measureManager.getAllLayer()
await measureManager.removeLayer(layerList)

Parameters

NameTypeDescription
layerListMeasureLayer[]所选取的层对象(必填)

Returns

Promise<boolean>

是否移除成功


setMeasureConfig

setMeasureConfig(measureConfig): Promise<any>

Details

修改全局测量参数

Examples

调用示例:

js
var 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',
    lineSize: 0.05,
    polygonColor: '0x88ffff00',
    measureLableStyle:
    {
      backgroundColor: '0xffffff00',
      frameColor: '0x00ffffff',
      frontStyle: font1,
      ShowByDistance: [0, 20],
    },
  },
}
measureManager.setMeasureConfig(config)
var 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',
    lineSize: 0.05,
    polygonColor: '0x88ffff00',
    measureLableStyle:
    {
      backgroundColor: '0xffffff00',
      frameColor: '0x00ffffff',
      frontStyle: font1,
      ShowByDistance: [0, 20],
    },
  },
}
measureManager.setMeasureConfig(config)

Parameters

NameTypeDescription
measureConfigmeasureConfig测量参数

Returns

Promise<any>


addMeasure

addMeasure(layerName, points, type, measureConfig): Promise<any>

Details

参数化添加测量线

Examples

调用示例:

js
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',
    lineSize: 0.05,
    polygonColor: '0x88ffff00',
    measureLableStyle:
    {
      backgroundColor: '0xffffff00',
      frameColor: '0x00ffffff',
      frontStyle: font1,
      ShowByDistance: [0, 20],
    },
  },
}
//type类型 {'TwopointMeasure','ContinuousMeasure','AngularMeasure','AreaMeasure'}
await measureManager.addMeasure('dd', [[27.73902169718069, -0.00001332256942987442, 3.5325877056537163],
[25.772821044372748, -0.000012371689081192017, 5.467538982623501]], 'TwopointMeasure', 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',
    lineSize: 0.05,
    polygonColor: '0x88ffff00',
    measureLableStyle:
    {
      backgroundColor: '0xffffff00',
      frameColor: '0x00ffffff',
      frontStyle: font1,
      ShowByDistance: [0, 20],
    },
  },
}
//type类型 {'TwopointMeasure','ContinuousMeasure','AngularMeasure','AreaMeasure'}
await measureManager.addMeasure('dd', [[27.73902169718069, -0.00001332256942987442, 3.5325877056537163],
[25.772821044372748, -0.000012371689081192017, 5.467538982623501]], 'TwopointMeasure', config)

Parameters

NameTypeDescription
layerNamenull | string层名
pointsVector3[]测量点集合
typestring测量类型
measureConfignull | measureConfig测量参数

Returns

Promise<any>


importLayer

importLayer(measureList, layerName, measureConfig): Promise<MeasureLayer>

Details

导入图层中的所有测量线

Examples

调用示例:

js
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',
    lineSize: 0.05,
    polygonColor: '0x88ffff00',
    measureLableStyle:
    {
      backgroundColor: '0xffffff00',
      frameColor: '0x00ffffff',
      frontStyle: font1,
      ShowByDistance: [0, 20],
    },
  },
}
//每个测量线对象包含 points[]、type和显示状态
const measureList
= [
{
  points: [[27.73902169718069, -0.00001332256942987442, 3.5325877056537163],
    [25.772821044372748, -0.000012371689081192017, 5.467538982623501]],
  type: 'TwopointMeasure',
  isShow: false,
},
{
   points: [[26.516041069104386, -0.000011905096471309662, 1.575710132762838],
    [23.27159772693404, -0.00001154094934463501, 4.201270633860877]],
  type: 'TwopointMeasure',
 isShow: true,
},
]
const layer = await measureManager.importLayer(measureList, 'dd', 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',
    lineSize: 0.05,
    polygonColor: '0x88ffff00',
    measureLableStyle:
    {
      backgroundColor: '0xffffff00',
      frameColor: '0x00ffffff',
      frontStyle: font1,
      ShowByDistance: [0, 20],
    },
  },
}
//每个测量线对象包含 points[]、type和显示状态
const measureList
= [
{
  points: [[27.73902169718069, -0.00001332256942987442, 3.5325877056537163],
    [25.772821044372748, -0.000012371689081192017, 5.467538982623501]],
  type: 'TwopointMeasure',
  isShow: false,
},
{
   points: [[26.516041069104386, -0.000011905096471309662, 1.575710132762838],
    [23.27159772693404, -0.00001154094934463501, 4.201270633860877]],
  type: 'TwopointMeasure',
 isShow: true,
},
]
const layer = await measureManager.importLayer(measureList, 'dd', config)

Parameters

NameTypeDescription
measureListobject层中所有测量线对象
layerNamenull | string层名
measureConfignull | measureConfig测量参数

Returns

Promise<MeasureLayer>

返回一个层对象


getLayerByName

getLayerByName(name): Promise<null | MeasureLayer>

Details

通过层名获取层对象

Examples

调用示例:

js
var measureManager = await cloud.getMeasureManager()
const layer = await measureManager.getLayerByName('cc')
var measureManager = await cloud.getMeasureManager()
const layer = await measureManager.getLayerByName('cc')

Parameters

NameTypeDescription
namestring层名

Returns

Promise<null | MeasureLayer>

层对象


setMeasureFinished

setMeasureFinished(fn): void

Details

设置测量完成的回调函数

Examples

调用示例:

js
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)

Parameters

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

Returns

void


setMeasureSelected

setMeasureSelected(fn): void

Details

设置测量选中的回调函数

Examples

调用示例:

js
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)
}
cloud.measureManager.setMeasureSelected(MeasureSelected)

Parameters

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

Returns

void


selectRelativeZeroPlane

selectRelativeZeroPlane(): Promise<any>

Details

基准面选取

Examples

调用示例:

js
const measureManager = await cloud.getMeasureManager()
await measureManager.selectRelativeZeroPlane()
const measureManager = await cloud.getMeasureManager()
await measureManager.selectRelativeZeroPlane()

Returns

Promise<any>


setZeroPlaneSelected

setZeroPlaneSelected(fn): void

Details

设置基准面选取的回调函数

Examples

调用示例:

js
function ZeroPlaneSelected(re: height) {
    (window as any).root = re
    console.log(re)
}
cloud.measureManager.setZeroPlaneSelected(ZeroPlaneSelected)
function ZeroPlaneSelected(re: height) {
    (window as any).root = re
    console.log(re)
}
cloud.measureManager.setZeroPlaneSelected(ZeroPlaneSelected)

Parameters

NameTypeDescription
fn(height: number) => void回调函数,height为基准面值

Returns

void