方法
# 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> | 经纬度(含高度)度数组 |
经纬度数组
# static compute_3D_polygon_area(points)
计算 polygon 面积
参数:
名称 | 类型 | 描述 |
---|---|---|
points |
Array.<Cesium.Cartesian3> | polygon顶点集 |
# 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表示计算失败
# static getCenterFromPoints(positions)
根据输入笛卡尔坐标数组,计算中心点
参数:
名称 | 类型 | 描述 |
---|---|---|
positions |
Array.<Cesium.Cartesian3> | 坐标点序列 |
根据坐标点序列计算出的中心点
# static getCenterOfCartesian3Points(points, useHeight)
计算Cartesian3数组的中心
参数:
名称 | 类型 | 描述 |
---|---|---|
points |
Array.<Cesium.Cartesian3> | |
useHeight |
Boolean | 是否使用高度 |
# static getCenterOfGravityPoint(points)
计算Cartesian3数组的重心
参数:
名称 | 类型 | 描述 |
---|---|---|
points |
Array.<Cesium.Cartesian3> |
# static getEastNorthUpXYZ(viewer, point, windowPosition)
计算屏幕坐标相对于地表某点垂直(或平行方向XY)的位置
参数:
名称 | 类型 | 描述 |
---|---|---|
viewer |
Number | 视图 |
point |
Cesium.Cartesian3 | 地表点 |
windowPosition |
Cesium.Cartesian2 | 屏幕坐标 |
与经过地表点的垂直地表的平面的交点,endPositionX表示X方向(经线方向)的面的交点位置(世界坐标),endPositionY表示Y方向(纬线方向)的面的交点位置(世界坐标),XYZLocPosition表示在地表点坐标系下局部坐标系XYZ方向的坐标
# 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 经纬度坐标
# static getPointOntoLineByWorldPosition(pointA, pointB, pointP, result)
计算三维场景中,直线外一点在直线上的投影点
参数:
名称 | 类型 | 描述 |
---|---|---|
pointA |
Cesium.Cartesian3 | 直线上一点A,世界坐标 |
pointB |
Cesium.Cartesian3 | 直线上一点B,世界坐标 |
pointP |
Cesium.Cartesian3 | 直线外一点P,世界坐标 |
result |
Cesium.Cartesian3 | 直线外一点,到直线的垂足点,世界坐标 |
result
# static getPointOntoPlane(ellipsoid, originPoint, normal, outPoint, result)
计算平面(此平面由一个点,与法线构成)外一点到此平面上的投影点
参数:
名称 | 类型 | 描述 |
---|---|---|
ellipsoid |
Ellipsoid | 椭球参数 |
originPoint |
Cesium.Cartesian3 | 平面上的一个点,世界坐标 |
normal |
Cesium.Cartesian3 | 平面的法线 |
outPoint |
Cesium.Cartesian3 | 平面外一点,世界坐标 |
result |
Cesium.Cartesian3 | 平面外一点在平面上的投影,世界坐标 |
result 平面外一点在平面上的投影,世界坐标
# static getRandomPointByRect(west, south, east, north, count, result)
计算矩形范围内的随机点
参数:
名称 | 类型 | 描述 |
---|---|---|
west |
Number | 西向经度数 |
south |
Number | 南向纬度数 |
east |
Number | 东向经度数 |
north |
Number | 北向纬度数 |
count |
Number | 需要的随机点数 |
result |
Array.<Object> |
result 返回随机点数集合
# static getRect3DPointsByLine(direct, p1, p2, result)
根据两点,确定一个平行于视窗的矩形
顶点顺序为: 0---3 | \ | 1---2
参数:
名称 | 类型 | 描述 |
---|---|---|
direct |
Cesium.Cartesian3 | 朝向,使用时一般用相机朝右的朝向 |
p1 |
Cesium.Cartesian3 | 起始点,世界坐标 |
p2 |
Cesium.Cartesian3 | 绘制结束点,世界坐标 |
result |
Array | undefined | 返回值,矩形的4个顶点 |
result
# static getSquarePointsByLine(p1, p2, result)
通过两点确定一个正方形
顶点顺序为: 0---3 | \ | 1---2
参数:
名称 | 类型 | 描述 |
---|---|---|
p1 |
Cesium.Cartesian3 | 起始点, 值类型为世界坐标 |
p2 |
Cesium.Cartesian3 | 结束点, 值类型为世界坐标 |
result |
Array | 返回值 |
result 正方形四个顶点, 值类型为世界坐标
# static getTransform(longitude, latitude, height)
计算矩阵
参数:
名称 | 类型 | 描述 |
---|---|---|
longitude |
Number | 角度制经度 |
latitude |
Number | 角度制纬度 |
height |
Number | 高程 |
# static isConvex(points)
计算是否为凸多边形
参数:
名称 | 类型 | 描述 |
---|---|---|
points |
Array.<Cesium.Cartesian3> | 点坐标 |
result 0:数量小于2;-1:凹多边形;1:凸多边形;
# static linearInterpolate(positions, step)
线性插值(二维坐标)
参数:
名称 | 类型 | 描述 |
---|---|---|
positions |
Array.<Cesium.Cartesian2> | 坐标点序列 |
step |
Number | 步长 |
插值后的坐标点序列
# static linearInterpolate3D(positions, step)
线性插值(三维坐标)
参数:
名称 | 类型 | 描述 |
---|---|---|
positions |
Array.<Cesium.Cartesian3> | 坐标点序列 |
step |
Number | 步长 |
插值后的坐标点序列
# static mergeLayersBoundingSphere(layers)
获取 M3D 缓存图层组合并后的包围球
参数:
名称 | 类型 | 描述 |
---|---|---|
layers |
Array.<MapGISM3DSet> | MapGISM3DSet对象数组,详见Cesium.MapGISM3DSet |
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
# static pointIsInPolygon(positions, point)
点是否在范围内(多边形)
参数:
名称 | 类型 | 描述 |
---|---|---|
positions |
Array.<Cesium.Cartographic> | 多边形坐标点序列 |
point |
Cesium.Cartographic | 点 |
true在范围内,false不在范围内。
# static polygonInterpolate(positions, step)
区域插值(多边形)
参数:
名称 | 类型 | 描述 |
---|---|---|
positions |
Array.<Cesium.Cartesian3> | 坐标点序列 |
step |
Number | 步长 |
插值后的坐标点序列
# static randomNum(minNum, maxNum)
获取区间范围内的随机数
参数:
名称 | 类型 | 描述 |
---|---|---|
minNum |
Number | 区间最小值 |
maxNum |
Number | 区间最大值 |
result 在范围[minNum, maxNum]内的随机数
# static setZValueByTerrain(TerrainProvider, level, positions)
根据地形设置二维坐标的高程值
参数:
名称 | 类型 | 描述 |
---|---|---|
TerrainProvider |
CesiumTerrainProvider | 地形 |
level |
Number | 以地形的级数为基准 |
positions |
Array.<Cesium.Cartesian2> | 需设置高程的二维坐标点序列 |
设置成功后的回调
# static simplifyLine(positions)
化简抽稀(用于折线路绘制)
参数:
名称 | 类型 | 描述 |
---|---|---|
positions |
Array.<Cesium.Cartesian3> | 坐标点序列 |
抽稀后的坐标点序列
# static sphericalPolygonAreaMeters(points)
计算球面 投影面积方法
参数:
名称 | 类型 | 描述 |
---|---|---|
points |
Array.<Cesium.Cartesian3> | polygon顶点集 |