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时是否快速概略计算方式,该方式计算精度较低,但计算速度快,仅能计算在当前视域内坐标的高度

depth boolean 可选

是否使用PolyUtil#interPolygonByDepth离屏渲染深度图的方式加速计算贴地高度

返回值:

异步计算完成的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模型上分析(模型分析较慢,按需开启),默认内部根据点的位置自动判断(但可能不准)

hasTerrain boolean true 可选

是否不考虑地形,仅在模型上分析(比如完全地下的场景下,可以设置为false)

exact boolean true 可选

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

depth boolean 可选

是否使用PolyUtil#interPolylineByDepth离屏渲染深度图的方式加速计算贴地高度

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.getMinDistancePoint(point, positions)number

求坐标列表中的最近点

参数名称 类型 描述信息
point Cesium.Cartesian3 | LngLatPoint

目标坐标

positions Array.<Cesium.Cartesian3> | Array.<LngLatPoint>

坐标列表

返回值:

距离(单位:米)

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点的 贴地距离