new AlgorithmLib()
通用算法工具集
Methods
-
AlgorithmLib.calAngleOf3Pnt(p1, p2, p3)
engineExtensions/util/AlgorithmLib.js, line 187 -
计算三点的角度(0-180之间)
Name Type Description p1Cesium.Cartesian3 顶点1
p2Cesium.Cartesian3 顶点2
p3Cesium.Cartesian3 顶点3
-
AlgorithmLib.Cartesian3ArrayToDegrees(positions, result){Array.<Number>}
engineExtensions/util/AlgorithmLib.js, line 1180 -
笛卡尔世界坐标数组转经纬度degree数组
Name Type Description positionsArray.<Cesium.Cartesian3> 笛卡尔世界坐标数组
resultArray.<Number> 可选 经纬度(含高度)度数组
Returns:
Type Description Array.<Number> 经纬度数组 -
AlgorithmLib.compute_3D_polygon_area(points){Number}
engineExtensions/util/AlgorithmLib.js, line 300 -
计算 polygon 面积
Name Type Description pointsArray.<Cesium.Cartesian3> polygon顶点集
Returns:
Type Description Number -
AlgorithmLib.computeTileInPolygon(tile, positions){Cesium.Intersect|false}
engineExtensions/util/AlgorithmLib.js, line 998 -
判断tile与绘制范围是否相交
Name Type Description tileArray.<MapGISM3DSet> MapGISM3DSet对象数组,详见Cesium.MapGISM3DSet
positionsArray.<Cesium.Cartesian3> 范围坐标点序列
Returns:
Type Description Cesium.Intersect | false Cesium.Intersect.OUTSIDE, Cesium.Intersect.INTERSECTING, or Cesium.Intersect.INSIDE表示完全包围、相交和在外部.false表示计算失败 -
AlgorithmLib.deepCopy(o){object}
engineExtensions/util/AlgorithmLib.js, line 213 -
深度拷贝对象
Name Type Description oobject 被拷贝对象
Returns:
Type Description object -
AlgorithmLib.getCenterFromPoints(positions){Array.<Cesium.Cartesian3>}
engineExtensions/util/AlgorithmLib.js, line 1370 -
根据输入笛卡尔坐标数组,计算中心点
Name Type Description positionsArray.<Cesium.Cartesian3> 坐标点序列
Returns:
Type Description Array.<Cesium.Cartesian3> 根据坐标点序列计算出的中心点 -
AlgorithmLib.getCenterOfCartesian3Points(points, useHeight){Cesium.Cartesian3}
engineExtensions/util/AlgorithmLib.js, line 519 -
计算Cartesian3数组的中心
Name Type Description pointsArray.<Cesium.Cartesian3> useHeightBoolean 是否使用高度
Returns:
Type Description Cesium.Cartesian3 -
AlgorithmLib.getCenterOfGravityPoint(points){Cesium.Cartesian3}
engineExtensions/util/AlgorithmLib.js, line 487 -
计算Cartesian3数组的重心
Name Type Description pointsArray.<Cesium.Cartesian3> Returns:
Type Description Cesium.Cartesian3 -
AlgorithmLib.getEastNorthUpXYZ(viewer, point, windowPosition){Object}
engineExtensions/util/AlgorithmLib.js, line 628 -
计算屏幕坐标相对于地表某点垂直(或平行方向XY)的位置
Name Type Description viewerNumber 视图
pointCesium.Cartesian3 地表点
windowPositionCesium.Cartesian2 屏幕坐标
Returns:
Type Description Object 与经过地表点的垂直地表的平面的交点,endPositionX表示X方向(经线方向)的面的交点位置(世界坐标),endPositionY表示Y方向(纬线方向)的面的交点位置(世界坐标),XYZLocPosition表示在地表点坐标系下局部坐标系XYZ方向的坐标 -
AlgorithmLib.getPixelsPerMeter(scene){Number}
engineExtensions/util/AlgorithmLib.js, line 701 -
获取当前场景下,每米占据多少个像素值
Name Type Description sceneScene Returns:
Type Description Number pixel/m -
AlgorithmLib.getPointOntoLine(ellipsoid, pointA, pointB, pointP, result){Cesium.Cartesian3}
engineExtensions/util/AlgorithmLib.js, line 798 -
计算三维场景中,直线外一点在直线上的投影点
Name Type Description ellipsoidEllipsoid 椭球参数
pointACesium.Cartesian3 直线上的点 A 经纬度
pointBCesium.Cartesian3 直线上的点 B 经纬度
pointPCesium.Cartesian3 直线外的点 P 经纬度
resultCesium.Cartesian3 返回结果,直线上的投影点
Returns:
Type Description Cesium.Cartesian3 result 经纬度坐标 -
AlgorithmLib.getPointOntoLineByWorldPosition(pointA, pointB, pointP, result){Cesium.Cartesian3}
engineExtensions/util/AlgorithmLib.js, line 855 -
计算三维场景中,直线外一点在直线上的投影点
Name Type Description pointACesium.Cartesian3 直线上一点A,世界坐标
pointBCesium.Cartesian3 直线上一点B,世界坐标
pointPCesium.Cartesian3 直线外一点P,世界坐标
resultCesium.Cartesian3 直线外一点,到直线的垂足点,世界坐标
Returns:
Type Description Cesium.Cartesian3 result -
AlgorithmLib.getPointOntoPlane(ellipsoid, originPoint, normal, outPoint, result){Cesium.Cartesian3}
engineExtensions/util/AlgorithmLib.js, line 737 -
计算平面(此平面由一个点,与法线构成)外一点到此平面上的投影点
Name Type Description ellipsoidEllipsoid 椭球参数
originPointCesium.Cartesian3 平面上的一个点,世界坐标
normalCesium.Cartesian3 平面的法线
outPointCesium.Cartesian3 平面外一点,世界坐标
resultCesium.Cartesian3 平面外一点在平面上的投影,世界坐标
Returns:
Type Description Cesium.Cartesian3 result 平面外一点在平面上的投影,世界坐标 -
AlgorithmLib.getRandomPointByRect(west, south, east, north, count, result){Array.<Object>}
engineExtensions/util/AlgorithmLib.js, line 909 -
计算矩形范围内的随机点
Name Type Description westNumber 西向经度数
southNumber 南向纬度数
eastNumber 东向经度数
northNumber 北向纬度数
countNumber 需要的随机点数
resultArray.<Object> Returns:
Type Description Array.<Object> result 返回随机点数集合 -
AlgorithmLib.getRect3DPointsByLine(direct, p1, p2, result){Array.<Cesium.Cartesian3>}
engineExtensions/util/AlgorithmLib.js, line 1275 -
根据两点,确定一个平行于视窗的矩形
顶点顺序为: 0---3 | \ | 1---2
Name Type Description directCesium.Cartesian3 朝向,使用时一般用相机朝右的朝向
p1Cesium.Cartesian3 起始点,世界坐标
p2Cesium.Cartesian3 绘制结束点,世界坐标
resultArray | undefined 返回值,矩形的4个顶点
Returns:
Type Description Array.<Cesium.Cartesian3> result -
AlgorithmLib.getSquarePointsByLine(p1, p2, result){Array.<Cesium.Cartesian3>}
engineExtensions/util/AlgorithmLib.js, line 1210 -
通过两点确定一个正方形
顶点顺序为: 0---3 | \ | 1---2
Name Type Description p1Cesium.Cartesian3 起始点, 值类型为世界坐标
p2Cesium.Cartesian3 结束点, 值类型为世界坐标
resultArray 返回值
Returns:
Type Description Array.<Cesium.Cartesian3> result 正方形四个顶点, 值类型为世界坐标 -
AlgorithmLib.getTransform(longitude, latitude, height){Cesium.Matrix4}
engineExtensions/util/AlgorithmLib.js, line 585 -
计算矩阵
Name Type Description longitudeNumber 角度制经度
latitudeNumber 角度制纬度
heightNumber 高程
Returns:
Type Description Cesium.Matrix4 -
AlgorithmLib.isConvex(points){Number}
engineExtensions/util/AlgorithmLib.js, line 1331 -
计算是否为凸多边形
Name Type Description pointsArray.<Cesium.Cartesian3> 点坐标
Returns:
Type Description Number result 0:数量小于2;-1:凹多边形;1:凸多边形; -
AlgorithmLib.linearInterpolate(positions, step){Array.<Cesium.Cartesian2>}
engineExtensions/util/AlgorithmLib.js, line 18 -
线性插值(二维坐标)
Name Type Description positionsArray.<Cesium.Cartesian2> 坐标点序列
stepNumber 步长
Returns:
Type Description Array.<Cesium.Cartesian2> 插值后的坐标点序列 -
AlgorithmLib.linearInterpolate3D(positions, step){Array.<Cesium.Cartesian3>}
engineExtensions/util/AlgorithmLib.js, line 50 -
线性插值(三维坐标)
Name Type Description positionsArray.<Cesium.Cartesian3> 坐标点序列
stepNumber 步长
Returns:
Type Description Array.<Cesium.Cartesian3> 插值后的坐标点序列 -
AlgorithmLib.mergeLayersBoundingSphere(layers){Cesium.BoundingSphere}
engineExtensions/util/AlgorithmLib.js, line 965 -
获取 M3D 缓存图层组合并后的包围球
Name Type Description layersArray.<MapGISM3DSet> MapGISM3DSet对象数组,详见Cesium.MapGISM3DSet
Returns:
Type Description Cesium.BoundingSphere boundingSphere 包围球 -
AlgorithmLib.pickFromRay(scene, viewPosition, options){Cesium.Cartesian3|undefined}
engineExtensions/util/AlgorithmLib.js, line 1043 -
射线求交
Name Type Description sceneScene viewPositionCesium.Cartesian3 optionsoptions Name Type Default Description directionCesium.Cartesian3 可选 方向向量,传入该参数时后续方向参数无效
headingNumber 0 可选 方位角
pitchNumber 0 可选 俯仰角
distanceNumber 可选 传入该值,则射线求交无结果时返回方向上该距离的点
Returns:
Type Description Cesium.Cartesian3 | undefined 返回射线物体相交的第一个交点坐标,没有交点则返回undefined -
AlgorithmLib.pointIsInPolygon(positions, point){Boolean}
engineExtensions/util/AlgorithmLib.js, line 125 -
点是否在范围内(多边形)
Name Type Description positionsArray.<Cesium.Cartographic> 多边形坐标点序列
pointCesium.Cartographic 点
Returns:
Type Description Boolean true在范围内,false不在范围内。 -
AlgorithmLib.polygonInterpolate(positions, step){Array.<Cesium.Cartesian3>}
engineExtensions/util/AlgorithmLib.js, line 83 -
区域插值(多边形)
Name Type Description positionsArray.<Cesium.Cartesian3> 坐标点序列
stepNumber 步长
Returns:
Type Description Array.<Cesium.Cartesian3> 插值后的坐标点序列 -
AlgorithmLib.randomNum(minNum, maxNum){Number}
engineExtensions/util/AlgorithmLib.js, line 947 -
获取区间范围内的随机数
Name Type Description minNumNumber 区间最小值
maxNumNumber 区间最大值
Returns:
Type Description Number result 在范围[minNum, maxNum]内的随机数 -
AlgorithmLib.setZValueByTerrain(TerrainProvider, level, positions){function}
engineExtensions/util/AlgorithmLib.js, line 256 -
根据地形设置二维坐标的高程值
Name Type Description TerrainProviderCesiumTerrainProvider 地形
levelNumber 以地形的级数为基准
positionsArray.<Cesium.Cartesian2> 需设置高程的二维坐标点序列
Returns:
Type Description function 设置成功后的回调 -
AlgorithmLib.simplifyLine(positions){Array.<Cesium.Cartesian3>}
engineExtensions/util/AlgorithmLib.js, line 148 -
化简抽稀(用于折线路绘制)
Name Type Description positionsArray.<Cesium.Cartesian3> 坐标点序列
Returns:
Type Description Array.<Cesium.Cartesian3> 抽稀后的坐标点序列 -
AlgorithmLib.sphericalPolygonAreaMeters(points){Number}
engineExtensions/util/AlgorithmLib.js, line 350 -
计算球面 投影面积方法
Name Type Description pointsArray.<Cesium.Cartesian3> polygon顶点集
Returns:
Type Description Number