Measure

new mars3d.thing.Measure(options)

图上量算

参数名称 类型 描述信息
options object 可选

参数对象,包括以下:

参数名称 类型 默认值 描述信息
hasEdit boolean true 可选

是否可编辑

isAutoEditing boolean true 可选

完成测量时是否自动启动编辑(需要hasEdit:true时)

isContinued boolean false 可选

是否连续测量

label LabelEntity.StyleOptions 可选

测量结果文本的样式

id string | number createGuid() 可选

对象的id标识

enabled boolean true 可选

对象的启用状态

eventParent BaseClass | boolean 可选

指定的事件冒泡对象,默认为所加入的map对象,false时不冒泡事件

pid string | number -1 可选

量算对应的图层父级的id,一般图层管理中使用

name string '' 可选

量算对应的图层名称

参考:

继承

成员(属性)

enabled : boolean

设置对象的启用和禁用状态。

继承自:

enabledEvent : boolean

设置事件的启用和禁用状态

继承自:

readonly graphicLayer : GraphicLayer

对应的矢量图层

readonly graphics : Array.<BaseGraphic>

图层内的Graphic集合对象

readonly hasMeasure : boolean

是否有进行量算

readonly id : string|number

对象的id标识

继承自:

readonly isAdded : boolean

是否已添加到地图

继承自:

readonly isDestroy : boolean

是否已经销毁了

继承自:

readonly options : object

当前类的构造参数

继承自:

readonly state : State

当前对象的状态

继承自:

readonly type : string|number

类型

继承自:

方法

addEventParent(obj)BaseClass

添加抛出事件到父类,它将接收传播的事件

参数名称 类型 描述信息
obj object

父类对象

返回值:

当前对象本身,可以链式调用

继承自:

addTo(map)BaseThing

添加到地图上,同 map.addThing

参数名称 类型 描述信息
map Map

地图对象

返回值:

当前对象本身,可以链式调用

继承自:

angle(options)Promise.<(AngleMeasure|*)>

角度测量

参数名称 类型 描述信息
options object 可选

控制参数

参数名称 类型 默认值 描述信息
style PolylineEntity.StyleOptions 可选

路线的样式,默认为箭头线

label LabelEntity.StyleOptions | object 可选

测量结果文本的样式

angleDecimal number 1 可选

显示的 角度值 文本中保留的小数位

decimal number 2 可选

显示的 距离值 文本中保留的小数位

返回值:

绘制创建完成的Promise,返回 角度测量控制类 对象

area(options)Promise.<(AreaMeasure|*)>

面积测量(水平面)

参数名称 类型 描述信息
options object 可选

控制参数

参数名称 类型 默认值 描述信息
style PolygonEntity.StyleOptions 可选

面的样式

label LabelEntity.StyleOptions | object 可选

测量结果文本的样式

unit string 'auto' 可选

计量单位,MeasureUtil#formatArea可选值:auto、m、km、mu、ha 。auto时根据面积值自动选用k或km

decimal number 2 可选

显示的文本中保留的小数位

返回值:

绘制创建完成的Promise,返回 面积测量控制类 对象

areaSurface(options)Promise.<(AreaSurfaceMeasure|*)>

贴地面积测量

参数名称 类型 描述信息
options object 可选

控制参数

参数名称 类型 默认值 描述信息
style PolygonEntity.StyleOptions 可选

面的样式

label LabelEntity.StyleOptions | object 可选

测量结果文本的样式

unit string 'auto' 可选

计量单位,MeasureUtil#formatArea可选值:auto、m、km、mu、ha 。auto时根据面积值自动选用k或km

splitNum number 10 可选

插值数,将面分割的网格数(概略值,有经纬网网格来插值)

has3dtiles boolean auto 可选

是否在3dtiles模型上分析(模型分析较慢,按需开启),默认内部根据点的位置自动判断(但可能不准)

decimal number 2 可选

显示的文本中保留的小数位

exact boolean true 可选

是否进行精确计算, 传false时是否快速概略计算方式,该方式计算精度较低,但计算速度快,仅能计算在当前视域内坐标的高度

返回值:

绘制创建完成的Promise,返回 面积测量控制类 对象

clear()void

清除测量

返回值:

clearDrawing()boolean

清除正在绘制

返回值:

是否清除了对象

destroy(noDel)void

销毁当前对象

参数名称 类型 默认值 描述信息
noDel boolean false 可选

false:会自动delete释放所有属性,true:不delete绑定的变量

返回值:

继承自:

distance(options)Promise.<(DistanceMeasure|*)>

测量 空间长度

参数名称 类型 描述信息
options object 可选

控制参数

参数名称 类型 默认值 描述信息
style PolylineEntity.StyleOptions 可选

路线的样式

label LabelEntity.StyleOptions | object 可选

测量结果文本的样式 // * @param {function} [options.label.updateText] 测量结果文本更新的回调方法

unit string 'auto' 可选

计量单位,MeasureUtil#formatDistance可选值:auto、m、km、wm、mile、zhang 等。auto时根据距离值自动选用k或km

maxPointNum number 9999 可选

绘制时,最多允许点的个数

addHeight number 可选

在绘制时,在绘制点的基础上增加的高度值

showAddText boolean true 可选

是否显示每一段的增加部分距离,如(+10.1km)

decimal number 2 可选

显示的文本中保留的小数位

返回值:

绘制创建完成的Promise,返回 长度测量控制类 对象

distanceSurface(options)Promise.<(DistanceSurfaceMeasure|*)>

测量 贴地长度

参数名称 类型 描述信息
options object 可选

控制参数

参数名称 类型 默认值 描述信息
style PolylineEntity.StyleOptions 可选

路线的样式

label LabelEntity.StyleOptions | object 可选

测量结果文本的样式, // * @param {function} [options.label.updateText] 测量结果文本更新的回调方法

unit string 'auto' 可选

计量单位,MeasureUtil#formatDistance可选值:auto、m、km、wm、mile、zhang 等。auto时根据距离值自动选用k或km

maxPointNum number 9999 可选

绘制时,最多允许点的个数

addHeight number 可选

在绘制时,在绘制点的基础上增加的高度值

showAddText boolean true 可选

是否显示每一段的增加部分距离,如(+10.1km)

splitNum number 100 可选

插值数,将线段分割的个数(概略值,有经纬网网格来插值)

has3dtiles boolean auto 可选

是否在3dtiles模型上分析(模型分析较慢,按需开启),默认内部根据点的位置自动判断(但可能不准)

exact boolean true 可选

是否进行精确计算, 传false时是否快速概略计算方式,该方式计算精度较低,但计算速度快,仅能计算在当前视域内坐标的高度

decimal number 2 可选

显示的文本中保留的小数位

返回值:

绘制创建完成的Promise,返回 贴地长度测量控制类 对象

endDraw()boolean

完成绘制和编辑,如有未完成的绘制会自动完成。 在移动端需要调用此方法来类似PC端双击结束。

返回值:

是否正常结束了矢量对象绘制

fire(type, data, propagate)BaseClass

触发指定类型的事件。

参数名称 类型 描述信息
type EventType | string

事件类型

data object 可选

传输的数据或对象,可在事件回调方法中event对象中获取进行使用

propagate BaseClass 可选

将事件传播给父类 (用addEventParent设置)

返回值:

当前对象本身,可以链式调用

继承自:

hasEventParent(obj)boolean

是否绑定了抛出事件到指定父类

参数名称 类型 描述信息
obj object

父类对象

返回值:

是否绑定了抛出事件

继承自:

height(options)Promise.<(HeightMeasure|*)>

高度测量

参数名称 类型 描述信息
options object 可选

控制参数

参数名称 类型 默认值 描述信息
style PolylineEntity.StyleOptions 可选

路线的样式

label LabelEntity.StyleOptions | object 可选

测量结果文本的样式

unit string 'auto' 可选

计量单位,MeasureUtil#formatDistance可选值:auto、m、km、wm、mile、zhang 等。auto时根据距离值自动选用k或km

decimal number 2 可选

显示的文本中保留的小数位

返回值:

绘制创建完成的Promise,返回 高度测量 对象

heightTriangle(options)Promise.<(HeightTriangleMeasure|*)>

三角高度测量, 包括水平距离、空间距离、高度差。

参数名称 类型 描述信息
options object 可选

控制参数

参数名称 类型 默认值 描述信息
style PolylineEntity.StyleOptions 可选

路线的样式

label LabelEntity.StyleOptions | object 可选

测量结果文本的样式

unit string 'auto' 可选

计量单位,MeasureUtil#formatDistance可选值:auto、m、km、wm、mile、zhang 等。auto时根据距离值自动选用k或km

decimal number 2 可选

显示的文本中保留的小数位

返回值:

绘制创建完成的Promise,返回 三角高度测量控制类 对象

listens(type, propagate)boolean

是否有绑定指定的事件

参数名称 类型 描述信息
type EventType | string

事件类型

propagate BaseClass 可选

是否判断指定的父类 (用addEventParent设置的)

返回值:

是否存在

继承自:

off(types, fn, context)BaseClass

解除绑定指定类型事件监听器

参数名称 类型 描述信息
types EventType | string | Array.<EventType> 可选

事件类型,未传值时解绑所有事件

fn function 可选

绑定的监听器回调方法,未传值时解绑所有指定类型对应事件,特殊说明:map.on监听的Cesium相关原生事件时必须传入该参数

context object 可选

侦听器的上下文(this关键字将指向的对象)。

返回值:

当前对象本身,可以链式调用

继承自:

on(types, fn, context)BaseClass

绑定指定类型事件监听器, 支持在监听中调用 event.stopPropagation(); 阻止事件冒泡

参数名称 类型 描述信息
types EventType | string | Array.<EventType> | Array.<string> | object

事件类型

fn function

绑定的监听器回调方法

context object 可选

侦听器的上下文(this关键字将指向的对象)。

返回值:

当前对象本身,可以链式调用

继承自:

once(types, fn, context)BaseClass

绑定一次性执行的指定类型事件监听器 与on类似,监听器只会被触发一次,然后被删除。

参数名称 类型 描述信息
types EventType | string | Array.<EventType>

事件类型

fn function

绑定的监听器回调方法

context object 可选

侦听器的上下文(this关键字将指向的对象)。

返回值:

当前对象本身,可以链式调用

继承自:

point(options)Promise.<(PointMeasure|*)>

坐标测量 popup

参数名称 类型 描述信息
options object 可选

控制参数

参数名称 类型 描述信息
style PointEntity.StyleOptions 可选

点的样式

popup function 可选

绑定的popup弹窗值的自定义回调方法

返回值:

绘制创建完成的Promise,返回 坐标测量控制类 对象

remove(destroy)void

从地图上移除,同map.removeThing

参数名称 类型 描述信息
destroy boolean 可选

是否调用destroy释放

返回值:

继承自:

removeEventParent(obj)BaseClass

移除抛出事件到父类

参数名称 类型 描述信息
obj object

父类对象

返回值:

当前对象本身,可以链式调用

继承自:

section(options)Promise.<(SectionMeasure|*)>

剖面分析,测量线插值点的高程数据

参数名称 类型 描述信息
options object 可选

控制参数

参数名称 类型 默认值 描述信息
style PolylineEntity.StyleOptions 可选

路线的样式

label LabelEntity.StyleOptions | object 可选

测量结果文本的样式 // * @param {function} [options.label.updateText] 测量结果文本更新的回调方法

unit string 'auto' 可选

计量单位,MeasureUtil#formatDistance可选值:auto、m、km、wm、mile、zhang 等。auto时根据距离值自动选用k或km

maxPointNum number 9999 可选

绘制时,最多允许点的个数

addHeight number 可选

在绘制时,在绘制点的基础上增加的高度值

splitNum number 200 可选

插值数,将线段分割的个数(概略值,有经纬网网格来插值)

has3dtiles boolean auto 可选

是否在3dtiles模型上分析(模型分析较慢,按需开启),默认内部根据点的位置自动判断(但可能不准)

exact boolean true 可选

是否进行精确计算, 传false时是否快速概略计算方式,该方式计算精度较低,但计算速度快,仅能计算在当前视域内坐标的高度

decimal number 2 可选

显示的文本中保留的小数位

返回值:

绘制创建完成的Promise,返回 剖面分析控制类矢量对象

setOptions(options)BaseThing|BaseControl|object

更新图层参数

参数名称 类型 描述信息
options object

与类的构造方法参数相同

返回值:

当前对象本身,可以链式调用

继承自:

stopDraw()boolean

停止绘制,如有未完成的绘制会自动删除

返回值:

是否清除了未完成的对象

toJSON()object

将对象转为Json简单对象,用于存储后再传参加载

返回值:

Json简单对象

继承自:

updateUnit(unit)void

更新量测结果的单位

参数名称 类型 描述信息
unit string

计量单位,MeasureUtil#formatDistanceMeasureUtil#formatArea 可选值:auto、m、km、wm、mile、zhang 等等。auto时根据距离值自动选用k或km

返回值:

volume(options)Promise.<(VolumeMeasure|*)>

体积测量(方量分析)

参数名称 类型 描述信息
options object 可选

控制参数

参数名称 类型 默认值 描述信息
style PolygonEntity.StyleOptions 可选

基准面的样式

polygonWall PolygonEntity.StyleOptions 可选

围墙面的样式

label LabelEntity.StyleOptions 可选

测量结果文本的样式

showFillVolume boolean true 可选

是否显示填方体积结果文本

fillVolumeName string '填方体积' 可选

填方体积结果的名称

showDigVolume boolean true 可选

是否显示挖方体积结果文本

digVolumeName string '挖方体积' 可选

挖方体积结果的名称

showArea boolean true 可选

是否显示横切面积结果文本

areaName string '横切面积' 可选

横切面积结果的名称

heightLabel boolean true 可选

是否显示各边界点高度值文本

offsetLabel boolean false 可选

是否显示各边界点高度差文本

labelHeight LabelEntity.StyleOptions 可选

各边界点高度结果文本的样式

decimal number 2 可选

显示的 数值 文本中保留的小数位

has3dtiles boolean 可选

是否在3dtiles模型上分析(模型分析较慢,按需开启),默认内部根据点的位置自动判断(但可能不准)

exact boolean true 可选

是否进行精确计算, 传false时是否快速概略计算方式,该方式计算精度较低,但计算速度快,仅能计算在当前视域内坐标的高度

unit string 'auto' 可选

计量单位,MeasureUtil#formatArea可选值:auto、m、km、mu、ha 。auto时根据面积值自动选用k或km

splitNum number 10 可选

插值数,将面分割的网格数(概略值,有经纬网网格来插值)

minHeight number 可选

可以指定最低高度(单位:米)

maxHeight number 可选

可以指定最高高度(单位:米)

height number 可选

可以指定基准面高度(单位:米),默认是绘制后的最低高度值

depth boolean false 可选

是否采用 VolumeDepthMeasure进行分析

返回值:

绘制创建完成的Promise,返回 体积测量控制类 对象

定义的类型

mars3d.thing.Measure.EventType

属性:
属性名称 类型 描述信息
change string

测量值变化了

start string

异步测量中,开始测量

end string

异步测量中,完成了测量后

addGraphic string

添加了矢量对象

removeGraphic string

移除了矢量对象

show string

显示了对象

hide string

隐藏了对象

click string

左键单击 鼠标事件

rightClick string

右键单击 鼠标事件

mouseOver string

鼠标移入 鼠标事件

mouseOut string

鼠标移出 鼠标事件

popupOpen string

popup弹窗打开后

popupClose string

popup弹窗关闭

tooltipOpen string

tooltip弹窗打开后

tooltipClose string

tooltip弹窗关闭

contextMenuOpen string

右键菜单 打开后

contextMenuClose string

右键菜单 关闭

contextMenuClick string

右键菜单 单击某一项后

drawStart string

开始绘制 标绘事件

drawMouseMove string

正在移动鼠标中,绘制过程中鼠标移动了点 标绘事件

drawAddPoint string

绘制过程中增加了点 标绘事件

drawRemovePoint string

绘制过程中删除了最后一个点 标绘事件

drawCreated string

创建完成 标绘事件

editStart string

开始编辑 标绘事件

editMouseDown string

移动鼠标按下左键(LEFT_DOWN)标绘事件

editMouseMove string

正在移动鼠标中,正在编辑拖拽修改点中(MOUSE_MOVE) 标绘事件

editMovePoint string

编辑修改了点(LEFT_UP)标绘事件

editRemovePoint string

编辑删除了点 标绘事件

editStyle string

图上编辑修改了相关style属性 标绘事件

editStop string

停止编辑 标绘事件

使用示例:
//绑定监听事件
thing.on(mars3d.EventType.change, function (event) {
  console.log('发送了变化', event)
})
参考: