MeasureUtil

MeasureUtil()

图上量算 的 常用静态方法

方法

static mars3d.MeasureUtil.formatArea(val, options)string

格式化显示面积值, 可指定单位

参数名称 类型 描述信息
val number

面积值,平方米

options object 可选

参数:

参数名称 类型 默认值 描述信息
unit string 'auto' 可选

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

getLangText function 可选

获取文本的对应方法

decimal number 2 可选

保留的小数位

返回值:

带单位的格式化面积值字符串,如:20.21 平方公里

static mars3d.MeasureUtil.formatDistance(val, options)string

格式化显示距离值, 可指定单位

参数名称 类型 描述信息
val number

距离值,米

options object 可选

参数:

参数名称 类型 默认值 描述信息
unit string 'auto' 可选

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

getLangText function 可选

获取文本的对应方法

decimal number 2 可选

保留的小数位

返回值:

带单位的格式化距离值字符串,如:20.17 米

static mars3d.MeasureUtil.formatVolume(val, options)string

格式化显示体积值, 可指定单位

参数名称 类型 描述信息
val number

体积值,立方米

options object 可选

参数:

参数名称 类型 默认值 描述信息
unit string 'auto' 可选

计量单位,当前无用,备用参数

getLangText function 可选

获取文本的对应方法

decimal number 2 可选

保留的小数位

返回值:

带单位的格式化体积值字符串,如:20.21立方米

static mars3d.MeasureUtil.getAngle(startPosition, endPosition, isNorthZero)number

计算2点的角度值,角度已正东为0度,顺时针为正方向

参数名称 类型 默认值 描述信息
startPosition Cesium.Cartesian3

需要计算的点

endPosition Cesium.Cartesian3

目标点,以该点为参考中心。

isNorthZero boolean false 可选

是否正北为0度角度(如方位角)

返回值:

返回角度值,0-360度

static mars3d.MeasureUtil.getArea(positions)number

计算坐标范围内 三维空间平面面积

参数名称 类型 描述信息
positions Array.<Cesium.Cartesian3> | Array.<LngLatPoint>

坐标数组

返回值:

面积,单位:平方米

static mars3d.MeasureUtil.getClampArea(positions, options)Promise.<object>

计算坐标范围内 贴地形的插值三角网平面面积(单位:平方米)

参数名称 类型 描述信息
positions Array.<Cesium.Cartesian3> | Array.<LngLatPoint>

坐标数组

options object

参数对象,具有以下属性:

参数名称 类型 默认值 描述信息
scene Cesium.Scene

三维地图场景对象,一般用map.scene或viewer.scene

splitNum number 10 可选

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

has3dtiles boolean auto 可选

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

exact boolean true 可选

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

返回值:

异步计算完成的Promise

static mars3d.MeasureUtil.getClampDistance(positions, options)Promise.<object>

异步计算贴地(地表或模型表面)距离,单位:米

参数名称 类型 描述信息
positions Array.<Cesium.Cartesian3> | Array.<LngLatPoint>

坐标数组

options object

参数对象,具有以下属性:

参数名称 类型 默认值 描述信息
scene Cesium.Scene

三维地图场景对象,一般用map.scene或viewer.scene

splitNum number 100 可选

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

has3dtiles boolean auto 可选

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

exact boolean true 可选

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

endItem getClampDistance_endItem

异步计算贴地距离中,每计算完成2个点之间的距离后 的回调方法

end getClampDistance_endItem

异步计算完成的 回调方法

返回值:

异步计算完成的Promise

static mars3d.MeasureUtil.getDistance(positions, closure)number

求坐标数组的空间距离

参数名称 类型 描述信息
positions Array.<Cesium.Cartesian3> | Array.<LngLatPoint>

坐标数组

closure boolean 可选

是否闭合,如求面的周长时,传入true

返回值:

距离(单位:米)

static mars3d.MeasureUtil.getSurfaceArea(positions)number

计算坐标范围内 投影在椭球面平面的二维平面面积(基于turf.area计算)

参数名称 类型 描述信息
positions Array.<Cesium.Cartesian3> | Array.<LngLatPoint>

坐标数组

返回值:

距离(单位:米)

static mars3d.MeasureUtil.getSurfaceDistance(positions)number

求坐标数组的 距离(地球表面弧度的), 比如北京到纽约(不能穿过球心,是贴地表的线的距离)

参数名称 类型 描述信息
positions Array.<Cesium.Cartesian3> | Array.<LngLatPoint>

坐标数组

返回值:

距离(单位:米)

static mars3d.MeasureUtil.getTriangleArea(pos1, pos2, pos3)number

计算三角形面积(空间平面)

参数名称 类型 描述信息
pos1 Cesium.Cartesian3

三角形顶点坐标1

pos2 Cesium.Cartesian3

三角形顶点坐标2

pos3 Cesium.Cartesian3

三角形顶点坐标3

返回值:

面积,单位:平方米

定义的类型

getClampDistance_callback(all_distance, arrDistance)

异步计算贴地距离完成 的回调方法

参数名称 类型 描述信息
all_distance number

路线的全部距离,单位:米

arrDistance Array

每2个点间的 每一段的长度数组

getClampDistance_endItem(options)

异步计算贴地距离中,每计算完成2个点之间的距离后 的回调方法

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

参数对象,具有以下属性:

参数名称 类型 描述信息
index number

坐标数组的index顺序

positions Array.<Cesium.Cartesian3>

当前2个点之间的 贴地坐标数组

distance number

当前2个点之间的 贴地距离

arrDistance Array.<number>

已计算完成从第0点到index点的 每一段的长度数组

all_distance number

已计算完成从第0点到index点的 贴地距离