类名 AlgorithmLib

# new AlgorithmLib()

通用算法工具集

方法

# static calAngleOf3Pnt(p1, p2, p3)

计算三点的角度(0-180之间)

参数:

名称 类型 描述
p1 Cesium.Cartesian3

顶点1

p2 Cesium.Cartesian3

顶点2

p3 Cesium.Cartesian3

顶点3

# static Cartesian3ArrayToDegrees(positions, resultopt)

笛卡尔世界坐标数组转经纬度degree数组

参数:

名称 类型 描述
positions Array.<Cesium.Cartesian3>

笛卡尔世界坐标数组

result Array.<Number>

经纬度(含高度)度数组

经纬度数组

Array.<Number>

# static compute_3D_polygon_area(points)

计算 polygon 面积

参数:

名称 类型 描述
points Array.<Cesium.Cartesian3>

polygon顶点集

Number

# static computeTileInPolygon(tile, positions)

判断tile与绘制范围是否相交

参数:

名称 类型 描述
tile Array.<MapGISM3DSet>

MapGISM3DSet对象数组,详见Cesium.MapGISM3DSet

positions Array.<Cesium.Cartesian3>

范围坐标点序列

Cesium.Intersect.OUTSIDE, Cesium.Intersect.INTERSECTING, or Cesium.Intersect.INSIDE表示完全包围、相交和在外部.false表示计算失败

Cesium.Intersect | false

# static deepCopy(o)

深度拷贝对象

参数:

名称 类型 描述
o object

被拷贝对象

object

# static getCenterFromPoints(positions)

根据输入笛卡尔坐标数组,计算中心点

参数:

名称 类型 描述
positions Array.<Cesium.Cartesian3>

坐标点序列

根据坐标点序列计算出的中心点

Array.<Cesium.Cartesian3>

# static getCenterOfCartesian3Points(points, useHeight)

计算Cartesian3数组的中心

参数:

名称 类型 描述
points Array.<Cesium.Cartesian3>
useHeight Boolean

是否使用高度

Cesium.Cartesian3

# static getCenterOfGravityPoint(points)

计算Cartesian3数组的重心

参数:

名称 类型 描述
points Array.<Cesium.Cartesian3>
Cesium.Cartesian3

# static getEastNorthUpXYZ(viewer, point, windowPosition)

计算屏幕坐标相对于地表某点垂直(或平行方向XY)的位置

参数:

名称 类型 描述
viewer Number

视图

point Cesium.Cartesian3

地表点

windowPosition Cesium.Cartesian2

屏幕坐标

与经过地表点的垂直地表的平面的交点,endPositionX表示X方向(经线方向)的面的交点位置(世界坐标),endPositionY表示Y方向(纬线方向)的面的交点位置(世界坐标),XYZLocPosition表示在地表点坐标系下局部坐标系XYZ方向的坐标

Object

# static getPixelsPerMeter(scene)

获取当前场景下,每米占据多少个像素值

参数:

名称 类型 描述
scene Scene

pixel/m

Number

# static getPointOntoLine(ellipsoid, pointA, pointB, pointP, result)

计算三维场景中,直线外一点在直线上的投影点

参数:

名称 类型 描述
ellipsoid Ellipsoid

椭球参数

pointA Cesium.Cartesian3

直线上的点 A 经纬度

pointB Cesium.Cartesian3

直线上的点 B 经纬度

pointP Cesium.Cartesian3

直线外的点 P 经纬度

result Cesium.Cartesian3

返回结果,直线上的投影点

result 经纬度坐标

Cesium.Cartesian3

# static getPointOntoLineByWorldPosition(pointA, pointB, pointP, result)

计算三维场景中,直线外一点在直线上的投影点

参数:

名称 类型 描述
pointA Cesium.Cartesian3

直线上一点A,世界坐标

pointB Cesium.Cartesian3

直线上一点B,世界坐标

pointP Cesium.Cartesian3

直线外一点P,世界坐标

result Cesium.Cartesian3

直线外一点,到直线的垂足点,世界坐标

result

Cesium.Cartesian3

# static getPointOntoPlane(ellipsoid, originPoint, normal, outPoint, result)

计算平面(此平面由一个点,与法线构成)外一点到此平面上的投影点

参数:

名称 类型 描述
ellipsoid Ellipsoid

椭球参数

originPoint Cesium.Cartesian3

平面上的一个点,世界坐标

normal Cesium.Cartesian3

平面的法线

outPoint Cesium.Cartesian3

平面外一点,世界坐标

result Cesium.Cartesian3

平面外一点在平面上的投影,世界坐标

result 平面外一点在平面上的投影,世界坐标

Cesium.Cartesian3

# static getRandomPointByRect(west, south, east, north, count, result)

计算矩形范围内的随机点

参数:

名称 类型 描述
west Number

西向经度数

south Number

南向纬度数

east Number

东向经度数

north Number

北向纬度数

count Number

需要的随机点数

result Array.<Object>

result 返回随机点数集合

Array.<Object>

# static getRect3DPointsByLine(direct, p1, p2, result)

根据两点,确定一个平行于视窗的矩形

顶点顺序为: 0---3 | \ | 1---2

参数:

名称 类型 描述
direct Cesium.Cartesian3

朝向,使用时一般用相机朝右的朝向

p1 Cesium.Cartesian3

起始点,世界坐标

p2 Cesium.Cartesian3

绘制结束点,世界坐标

result Array | undefined

返回值,矩形的4个顶点

result

Array.<Cesium.Cartesian3>

# static getSquarePointsByLine(p1, p2, result)

通过两点确定一个正方形

顶点顺序为: 0---3 | \ | 1---2

参数:

名称 类型 描述
p1 Cesium.Cartesian3

起始点, 值类型为世界坐标

p2 Cesium.Cartesian3

结束点, 值类型为世界坐标

result Array

返回值

result 正方形四个顶点, 值类型为世界坐标

Array.<Cesium.Cartesian3>

# static getTransform(longitude, latitude, height)

计算矩阵

参数:

名称 类型 描述
longitude Number

角度制经度

latitude Number

角度制纬度

height Number

高程

Cesium.Matrix4

# static isConvex(points)

计算是否为凸多边形

参数:

名称 类型 描述
points Array.<Cesium.Cartesian3>

点坐标

result 0:数量小于2;-1:凹多边形;1:凸多边形;

Number

# static linearInterpolate(positions, step)

线性插值(二维坐标)

参数:

名称 类型 描述
positions Array.<Cesium.Cartesian2>

坐标点序列

step Number

步长

插值后的坐标点序列

Array.<Cesium.Cartesian2>

# static linearInterpolate3D(positions, step)

线性插值(三维坐标)

参数:

名称 类型 描述
positions Array.<Cesium.Cartesian3>

坐标点序列

step Number

步长

插值后的坐标点序列

Array.<Cesium.Cartesian3>

# static mergeLayersBoundingSphere(layers)

获取 M3D 缓存图层组合并后的包围球

参数:

名称 类型 描述
layers Array.<MapGISM3DSet>

MapGISM3DSet对象数组,详见Cesium.MapGISM3DSet

boundingSphere 包围球

Cesium.BoundingSphere

# static pickFromRay(scene, viewPosition, options)

射线求交

参数:

名称 类型 默认值 描述
scene Scene
viewPosition Cesium.Cartesian3
options options
direction Cesium.Cartesian3

方向向量,传入该参数时后续方向参数无效

heading Number 0

方位角

pitch Number 0

俯仰角

distance Number

传入该值,则射线求交无结果时返回方向上该距离的点

返回射线物体相交的第一个交点坐标,没有交点则返回undefined

Cesium.Cartesian3 | undefined

# static pointIsInPolygon(positions, point)

点是否在范围内(多边形)

参数:

名称 类型 描述
positions Array.<Cesium.Cartographic>

多边形坐标点序列

point Cesium.Cartographic

true在范围内,false不在范围内。

Boolean

# static polygonInterpolate(positions, step)

区域插值(多边形)

参数:

名称 类型 描述
positions Array.<Cesium.Cartesian3>

坐标点序列

step Number

步长

插值后的坐标点序列

Array.<Cesium.Cartesian3>

# static randomNum(minNum, maxNum)

获取区间范围内的随机数

参数:

名称 类型 描述
minNum Number

区间最小值

maxNum Number

区间最大值

result 在范围[minNum, maxNum]内的随机数

Number

# static setZValueByTerrain(TerrainProvider, level, positions)

根据地形设置二维坐标的高程值

参数:

名称 类型 描述
TerrainProvider CesiumTerrainProvider

地形

level Number

以地形的级数为基准

positions Array.<Cesium.Cartesian2>

需设置高程的二维坐标点序列

设置成功后的回调

function

# static simplifyLine(positions)

化简抽稀(用于折线路绘制)

参数:

名称 类型 描述
positions Array.<Cesium.Cartesian3>

坐标点序列

抽稀后的坐标点序列

Array.<Cesium.Cartesian3>

# static sphericalPolygonAreaMeters(points)

计算球面 投影面积方法

参数:

名称 类型 描述
points Array.<Cesium.Cartesian3>

polygon顶点集

Number
构造函数
成员变量
方法
事件