Namespace: Math

Glodon.CIMCube.Global. Math

数学工具子模块,包含各种数学计算和坐标转换函数

Methods


<static> CaluateMatrix(localPosition, sourceCoordinate, targetCoordinate)

获取三维坐标转换矩阵
Parameters:
Name Type Description
localPosition Object 项目原点坐标|局部坐标原点;例:{x, y, z};
sourceCoordinate String 原始坐标系; 'local':局部坐标系; 'EPSG:4978':三维地理坐标系;
targetCoordinate String 目标坐标系; 'local':局部坐标系; 'EPSG:4978':三维地理坐标系;
Returns:
变换矩阵Matrix4
Type
Glodon.CIMCube.Cesium.Matrix4

<static> cartesianArrayToCoordinatesArray(cartesianArray)

笛卡尔坐标转数组格式经纬度[数组集] 笛卡尔坐标数组转坐标串
Parameters:
Name Type Description
cartesianArray Array.<Glodon.CIMCube.Cesium.Cartesian3> 笛卡尔坐标数组
Returns:
坐标串[[lon,lat,height]]
Type
Array.<Object>

<static> cartesianToCartographic(cartesian)

笛卡尔坐标转地理坐标
Parameters:
Name Type Description
cartesian Glodon.CIMCube.Cesium.Cartesian3 笛卡尔坐标转地理坐标
Returns:
地理坐标
Type
Glodon.CIMCube.Cesium.Cartographic

<static> cartesianToCoordinates(cartesian)

笛卡尔坐标转经纬度坐标
Parameters:
Name Type Description
cartesian Cesium.Cartesian3 笛卡尔坐标
Returns:
坐标数组[lon,lat,height]
Type
Array

<static> cartesianToLlh(p)

世界笛卡尔坐标系转换经纬度坐标
Parameters:
Name Type Description
p Object 世界笛卡尔坐标{x,y,z}
Returns:
经纬度{lon, lat, height}
Type
Object

<static> cartographicToCartesian(cartographic)

地理坐标转笛卡尔坐标
Parameters:
Name Type Description
cartographic Glodon.CIMCube.Cesium.Cartographic 地理坐标
Returns:
笛卡尔坐标
Type
Glodon.CIMCube.Cesium.Cartesian3

<static> computeSVDMatrix(sourcePoints, targetPoints)

三维拟合算法
Parameters:
Name Type Description
sourcePoints Array.<Object> 原始点坐标数组
targetPoints Array.<Object> 目标点坐标数组
Returns:
矩阵Matrix4
Type
Glodon.CIMCube.Cesium.Matrix4

<static> coordinatesArrayToCartesianArray(coordinatesArray)

坐标串转笛卡尔坐标数组
Parameters:
Name Type Description
coordinatesArray Array 坐标串[[lon,lat,height]]
Returns:
笛卡尔坐标数组
Type
Array.<Glodon.CIMCube.Cesium.Cartesian3>

<static> coordinatesToCartesian(coordinate)

经纬度坐标转笛卡尔坐标
Parameters:
Name Type Description
coordinate Array 坐标数组[lon,lat,height]
Returns:
笛卡尔坐标
Type
Glodon.CIMCube.Cesium.Cartesian3

<static> coordinateTranslate(position, transformationMatrix)

坐标转换
Parameters:
Name Type Description
position Glodon.CIMCube.Cesium.Cartesian3 源坐标
transformationMatrix Glodon.CIMCube.Cesium.Matrix4 变换矩阵Matrix4
Returns:
目标坐标
Type
Glodon.CIMCube.Cesium.Cartesian3

<static> equals()

判断a、b两个参数是否相等,支持所有基本类型

<static> getDistance(p1, p2)

取得两个经纬度之间距离(有误差)
Parameters:
Name Type Description
p1 Object 点坐标
p2 Object 点坐标

<static> getRayIntersectionToPlane()

计算射线与平面的交点, dir 与 normal都必须是归一化的; 没有交点的话,返回false,result保持不变; 有的话返回true,result会被新值覆盖; 点在平面上也算相交;

<static> getTransformationFromSRT()

局部旋转,然后缩放,最后平移; 旋转按照zyx顺序,且为静态轴(后面旋转的轴不受前面转动的影响); s,r,t 皆为Cartesian3,旋转用弧度表示;

<static> getWorldPositionByLocalPosition(projectPosition, localPosition, tiles3DLayerPosition)

局部坐标转换世界坐标,原点为指定图层
Parameters:
Name Type Description
projectPosition Glodon.CIMCube.Cesium.Cartesian3 项目原点坐标|局部坐标原点;例:{x, y, z};
localPosition Glodon.CIMCube.Cesium.Cartesian3 以projectPosition为原点的投影局部坐标;例:{x, y, z};
tiles3DLayerPosition Glodon.CIMCube.Cesium.Cartesian3 图层原点世界坐标;例:{x, y, z};
Returns:
目标坐标
Type
Glodon.CIMCube.Cesium.Cartesian3

<static> insidePolygon(list, point)

判断一个点是否在指定多边形区域内(2D经纬度版本)
Parameters:
Name Type Description
list Array 2D经纬度点数组 代表多边形区域
point Object 2D经纬度点坐标
Returns:
Boolean

<static> linePolygonIntersection(lineStartX, lineStartY, lineEndX, lineEndY, polygon)

计算线段和多边形交点(2D, 只返回第一个交点, 认为线段和多边形边重合时没有交点)
Parameters:
Name Type Description
lineStartX Number 线段起点X
lineStartY Number 线段起点Y
lineEndX Number 线段终点X
lineEndY Number 线段终点Y
polygon Array 多边形点集

<static> llhToCartesian(lon, lat, height)

经纬度坐标转换世界笛卡尔坐标系
Parameters:
Name Type Description
lon Number 经度
lat Number 纬度
height Number 高度(米)
Returns:
世界笛卡尔坐标{x,y,z}
Type
Object

<static> modelToWorldCoordinates(coordinates, transform)

模型坐标转WGS84经纬度坐标
Parameters:
Name Type Description
coordinates Array.<Object> 局部坐标
transform Glodon.CIMCube.Cesium.Matrix4 变换矩阵
Returns:
WGS84经纬度坐标
Type
Array.<Object>

<static> offsetToLongLat(llh, offset)

二维坐标下,经纬度偏移(有误差)
Parameters:
Name Type Description
llh Object 经纬度;{lon,lat}
offset Object 偏移;{x,y}
Returns:
经纬度;{lon,lat}
Type
Object

<static> packedDepth()

depth范围为[0, 1)

<static> pointInPolygon(point, polygon)

判断一个点是否在指定多边形区域内(2D)
Parameters:
Name Type Description
point Object 2D点坐标
polygon Array.<Object> 多边形点数组 - [{x,y},{x,y}]

<static> reverseBezierCurveFn(begin, curveRet, end)

贝塞尔反算(仅限二阶)
Parameters:
Name Type Description
begin Number
curveRet Number
end Number
Returns:
Type
Number

<static> roundingByBezier(list, interpolationCount, approximation)

二三维坐标下,可通过贝塞尔曲线差值
Parameters:
Name Type Description
list Array 数组
interpolationCount Number 差值个数,不宜过多;
approximation Number 近似值;0的场合做为贝塞尔的支点,1的场合贝塞尔曲线穿过支点;默认为0;范围:0~1;
Returns:
数组;{lon,lat}
Type
Array.<Object>

<static> toCesiumColor(color)

转换为Cesium颜色
Parameters:
Name Type Description
color String 颜色;#FFFFFF|rgab(255,255,255,1.0)|red|Cesium.Color
Returns:
Cesium颜色
Type
Glodon.CIMCube.Cesium.Color

<static> toDegrees(radians)

弧度转度数
Parameters:
Name Type Description
radians Number 弧度
Returns:
度数
Type
Number

<static> toRadians(degrees)

度数转弧度
Parameters:
Name Type Description
degrees Number 度数
Returns:
弧度
Type
Number

<static> unpackDepth()

rgba默认范围为[0, 255]