deeptwins-engine-3d 0.1.32 → 0.1.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/Build/DeepTwins/Image/f_point.png +0 -0
- package/dist/esm/analyze/SubmergenceAnalysis.d.ts +19 -0
- package/dist/esm/analyze/SubmergenceAnalysis.js +137 -0
- package/dist/esm/constant.d.ts +29 -0
- package/dist/esm/constant.js +47 -0
- package/dist/esm/drawer/index.d.ts +56 -59
- package/dist/esm/drawer/index.js +380 -292
- package/dist/esm/drawer/shape/BaseShape.d.ts +33 -0
- package/dist/esm/drawer/shape/BaseShape.js +228 -0
- package/dist/esm/drawer/shape/Point.d.ts +44 -11
- package/dist/esm/drawer/shape/Point.js +299 -35
- package/dist/esm/drawer/shape/Polygon.d.ts +43 -9
- package/dist/esm/drawer/shape/Polygon.js +408 -56
- package/dist/esm/drawer/shape/Polyline.d.ts +41 -10
- package/dist/esm/drawer/shape/Polyline.js +373 -31
- package/dist/esm/drawer/utils.d.ts +1 -0
- package/dist/esm/drawer/utils.js +63 -0
- package/dist/esm/graphicLayer/BaseLayer.d.ts +1 -0
- package/dist/esm/graphicLayer/BaseLayer.js +8 -3
- package/dist/esm/graphicLayer/BaseSource.d.ts +1 -1
- package/dist/esm/graphicLayer/BaseSource.js +13 -3
- package/dist/esm/graphicLayer/GraphicLayerCollection.d.ts +2 -0
- package/dist/esm/graphicLayer/GraphicLayerCollection.js +46 -4
- package/dist/esm/graphicLayer/HtmlEntity.js +1 -2
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +7 -4
- package/dist/esm/map/Map.d.ts +1 -0
- package/dist/esm/map/Map.js +10 -0
- package/dist/esm/measure/Area.d.ts +29 -0
- package/dist/esm/measure/{AreaMeasure.js → Area.js} +156 -65
- package/dist/esm/measure/BaseDraw.d.ts +13 -0
- package/dist/esm/measure/BaseDraw.js +70 -0
- package/dist/esm/measure/Distance.d.ts +23 -0
- package/dist/esm/measure/Distance.js +239 -0
- package/dist/esm/measure/index.d.ts +44 -5
- package/dist/esm/measure/index.js +278 -5
- package/dist/esm/measure/utils.d.ts +108 -14
- package/dist/esm/measure/utils.js +262 -20
- package/dist/esm/plot/create/CreateAssemble.d.ts +2 -0
- package/dist/esm/plot/create/CreateAssemble.js +63 -0
- package/dist/esm/plot/create/CreateAttackArrow.d.ts +5 -0
- package/dist/esm/plot/create/CreateAttackArrow.js +75 -0
- package/dist/esm/plot/create/CreateBillboard.d.ts +2 -0
- package/dist/esm/plot/create/CreateBillboard.js +47 -0
- package/dist/esm/plot/create/CreateBow.d.ts +2 -0
- package/dist/esm/plot/create/CreateBow.js +63 -0
- package/dist/esm/plot/create/CreateCircle.d.ts +2 -0
- package/dist/esm/plot/create/CreateCircle.js +68 -0
- package/dist/esm/plot/create/CreateCurve.d.ts +2 -0
- package/dist/esm/plot/create/CreateCurve.js +76 -0
- package/dist/esm/plot/create/CreateElliptic.d.ts +2 -0
- package/dist/esm/plot/create/CreateElliptic.js +69 -0
- package/dist/esm/plot/create/CreateFlag.d.ts +2 -0
- package/dist/esm/plot/create/CreateFlag.js +80 -0
- package/dist/esm/plot/create/CreateFormation.d.ts +2 -0
- package/dist/esm/plot/create/CreateFormation.js +65 -0
- package/dist/esm/plot/create/CreateFreeLine.d.ts +2 -0
- package/dist/esm/plot/create/CreateFreeLine.js +69 -0
- package/dist/esm/plot/create/CreateFreePolygon.d.ts +2 -0
- package/dist/esm/plot/create/CreateFreePolygon.js +65 -0
- package/dist/esm/plot/create/CreateLabel.d.ts +2 -0
- package/dist/esm/plot/create/CreateLabel.js +55 -0
- package/dist/esm/plot/create/CreateLineArrow.d.ts +2 -0
- package/dist/esm/plot/create/CreateLineArrow.js +79 -0
- package/dist/esm/plot/create/CreatePincerArrow.d.ts +5 -0
- package/dist/esm/plot/create/CreatePincerArrow.js +73 -0
- package/dist/esm/plot/create/CreatePoint.d.ts +2 -0
- package/dist/esm/plot/create/CreatePoint.js +47 -0
- package/dist/esm/plot/create/CreatePolygon.d.ts +2 -0
- package/dist/esm/plot/create/CreatePolygon.js +80 -0
- package/dist/esm/plot/create/CreatePolyline.d.ts +2 -0
- package/dist/esm/plot/create/CreatePolyline.js +70 -0
- package/dist/esm/plot/create/CreateRectangle.d.ts +2 -0
- package/dist/esm/plot/create/CreateRectangle.js +60 -0
- package/dist/esm/plot/create/CreateRegularPolygon.d.ts +2 -0
- package/dist/esm/plot/create/CreateRegularPolygon.js +75 -0
- package/dist/esm/plot/create/CreateRightAngleArrow.d.ts +5 -0
- package/dist/esm/plot/create/CreateRightAngleArrow.js +73 -0
- package/dist/esm/plot/create/CreateRoundRectangle.d.ts +2 -0
- package/dist/esm/plot/create/CreateRoundRectangle.js +63 -0
- package/dist/esm/plot/create/CreateSector.d.ts +2 -0
- package/dist/esm/plot/create/CreateSector.js +65 -0
- package/dist/esm/plot/create/CreateStraightArrow.d.ts +5 -0
- package/dist/esm/plot/create/CreateStraightArrow.js +65 -0
- package/dist/esm/plot/create/CreateSwallowtailArrow.d.ts +5 -0
- package/dist/esm/plot/create/CreateSwallowtailArrow.js +67 -0
- package/dist/esm/plot/create/index.d.ts +25 -0
- package/dist/esm/plot/create/index.js +25 -0
- package/dist/esm/plot/edit/EditAssemble.d.ts +8 -0
- package/dist/esm/plot/edit/EditAssemble.js +120 -0
- package/dist/esm/plot/edit/EditAttackArrow.d.ts +8 -0
- package/dist/esm/plot/edit/EditAttackArrow.js +182 -0
- package/dist/esm/plot/edit/EditBillboard.d.ts +7 -0
- package/dist/esm/plot/edit/EditBillboard.js +70 -0
- package/dist/esm/plot/edit/EditBow.d.ts +8 -0
- package/dist/esm/plot/edit/EditBow.js +119 -0
- package/dist/esm/plot/edit/EditCircle.d.ts +8 -0
- package/dist/esm/plot/edit/EditCircle.js +133 -0
- package/dist/esm/plot/edit/EditCurve.d.ts +8 -0
- package/dist/esm/plot/edit/EditCurve.js +180 -0
- package/dist/esm/plot/edit/EditElliptic.d.ts +8 -0
- package/dist/esm/plot/edit/EditElliptic.js +144 -0
- package/dist/esm/plot/edit/EditFlag.d.ts +8 -0
- package/dist/esm/plot/edit/EditFlag.js +121 -0
- package/dist/esm/plot/edit/EditFormation.d.ts +8 -0
- package/dist/esm/plot/edit/EditFormation.js +120 -0
- package/dist/esm/plot/edit/EditLabel.d.ts +7 -0
- package/dist/esm/plot/edit/EditLabel.js +100 -0
- package/dist/esm/plot/edit/EditLineArrow.d.ts +8 -0
- package/dist/esm/plot/edit/EditLineArrow.js +180 -0
- package/dist/esm/plot/edit/EditPincerArrow.d.ts +8 -0
- package/dist/esm/plot/edit/EditPincerArrow.js +121 -0
- package/dist/esm/plot/edit/EditPoint.d.ts +7 -0
- package/dist/esm/plot/edit/EditPoint.js +70 -0
- package/dist/esm/plot/edit/EditPolygon.d.ts +8 -0
- package/dist/esm/plot/edit/EditPolygon.js +181 -0
- package/dist/esm/plot/edit/EditPolyline.d.ts +8 -0
- package/dist/esm/plot/edit/EditPolyline.js +179 -0
- package/dist/esm/plot/edit/EditRectangle.d.ts +8 -0
- package/dist/esm/plot/edit/EditRectangle.js +119 -0
- package/dist/esm/plot/edit/EditRegularPolygon.d.ts +8 -0
- package/dist/esm/plot/edit/EditRegularPolygon.js +170 -0
- package/dist/esm/plot/edit/EditRightAngleArrow.d.ts +8 -0
- package/dist/esm/plot/edit/EditRightAngleArrow.js +143 -0
- package/dist/esm/plot/edit/EditRoundRectangle.d.ts +8 -0
- package/dist/esm/plot/edit/EditRoundRectangle.js +119 -0
- package/dist/esm/plot/edit/EditSector.d.ts +8 -0
- package/dist/esm/plot/edit/EditSector.js +120 -0
- package/dist/esm/plot/edit/EditStraightArrow.d.ts +8 -0
- package/dist/esm/plot/edit/EditStraightArrow.js +120 -0
- package/dist/esm/plot/edit/EditSwallowtailArrow.d.ts +8 -0
- package/dist/esm/plot/edit/EditSwallowtailArrow.js +121 -0
- package/dist/esm/plot/edit/index.d.ts +23 -0
- package/dist/esm/plot/edit/index.js +23 -0
- package/dist/esm/plot/utils/Algorithm.d.ts +2 -0
- package/dist/esm/plot/utils/Algorithm.js +316 -0
- package/dist/esm/plot/utils/Coordinate.d.ts +98 -0
- package/dist/esm/plot/utils/Coordinate.js +184 -0
- package/dist/esm/plot/utils/DomUtil.d.ts +34 -0
- package/dist/esm/plot/utils/DomUtil.js +100 -0
- package/dist/esm/plot/utils/PlotCommon.d.ts +101 -0
- package/dist/esm/plot/utils/PlotCommon.js +1412 -0
- package/dist/esm/plot/utils/ReminderTip.d.ts +10 -0
- package/dist/esm/plot/utils/ReminderTip.js +67 -0
- package/dist/esm/plot/utils/Tooltip.d.ts +3 -0
- package/dist/esm/plot/utils/Tooltip.js +97 -0
- package/dist/esm/plot/utils/plotUtil.d.ts +5 -0
- package/dist/esm/plot/utils/plotUtil.js +268 -0
- package/dist/esm/tool/utils.d.ts +8 -7
- package/dist/esm/tool/utils.js +20 -16
- package/dist/esm/toolTip/index.d.ts +2 -1
- package/dist/esm/toolTip/index.js +12 -6
- package/dist/esm/typings.d.ts +1 -0
- package/dist/umd/deeptwins-engine-3d.min.js +1 -1
- package/package.json +1 -1
- package/dist/esm/drawer/base.d.ts +0 -51
- package/dist/esm/drawer/base.js +0 -179
- package/dist/esm/drawer/painter.d.ts +0 -41
- package/dist/esm/drawer/painter.js +0 -115
- package/dist/esm/drawer/shape/Ellipse.d.ts +0 -10
- package/dist/esm/drawer/shape/Ellipse.js +0 -62
- package/dist/esm/drawer/shape/Rectangle.d.ts +0 -10
- package/dist/esm/drawer/shape/Rectangle.js +0 -85
- package/dist/esm/drawer/typings.d.ts +0 -106
- package/dist/esm/drawer/typings.js +0 -1
- package/dist/esm/measure/AreaMeasure.d.ts +0 -19
- package/dist/esm/measure/AreaSurfaceMeasure.d.ts +0 -30
- package/dist/esm/measure/AreaSurfaceMeasure.js +0 -151
- package/dist/esm/measure/DistanceMeasure.d.ts +0 -19
- package/dist/esm/measure/DistanceMeasure.js +0 -91
- package/dist/esm/measure/DistanceSurfaceMeasure.d.ts +0 -37
- package/dist/esm/measure/DistanceSurfaceMeasure.js +0 -122
- package/dist/esm/measure/Measure.d.ts +0 -111
- package/dist/esm/measure/Measure.js +0 -177
- package/dist/esm/tool/cesiumExtends/Subscriber/index.d.ts +0 -66
- package/dist/esm/tool/cesiumExtends/Subscriber/index.js +0 -246
- package/dist/esm/tool/kriging.d.ts +0 -10
- package/dist/esm/tool/kriging.js +0 -436
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 地图坐标相关方法
|
|
3
|
+
*/
|
|
4
|
+
import * as Cesium from 'deeptwins-cesium';
|
|
5
|
+
/**
|
|
6
|
+
* 获取屏幕中心点坐标,参数传空返回笛卡尔坐标
|
|
7
|
+
* @param type "cartesian"-笛卡尔,"degree"-经纬度
|
|
8
|
+
* @returns {object} {x,y,z}
|
|
9
|
+
*/
|
|
10
|
+
declare const getCameraCentor: (viewer: Cesium.Viewer, type: string | undefined) => any;
|
|
11
|
+
/**
|
|
12
|
+
* 经纬度转笛卡尔坐标
|
|
13
|
+
* @param position - { x, y, z }
|
|
14
|
+
* @returns {Object} Cartesian3
|
|
15
|
+
*/
|
|
16
|
+
declare const transformWGS84ToCartesian: (position: {
|
|
17
|
+
x: number;
|
|
18
|
+
y: number;
|
|
19
|
+
z?: number;
|
|
20
|
+
}) => Cesium.Cartesian3;
|
|
21
|
+
/**
|
|
22
|
+
* 笛卡尔坐标转经纬度
|
|
23
|
+
* @param cartesian Cartesian3
|
|
24
|
+
* @returns {Object} { x, y, z }
|
|
25
|
+
*/
|
|
26
|
+
declare const transformCartesianToWGS84: (cartesian: any) => {
|
|
27
|
+
x: number;
|
|
28
|
+
y: number;
|
|
29
|
+
z: number;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* 经纬度坐标由十进制度转度分秒
|
|
33
|
+
* @param position - { x, y, z }
|
|
34
|
+
* @returns - { x:[], y:[] }
|
|
35
|
+
*/
|
|
36
|
+
declare const transformWGS84ToDMS: (position: {
|
|
37
|
+
x: number;
|
|
38
|
+
y: number;
|
|
39
|
+
z?: number | undefined;
|
|
40
|
+
}) => {
|
|
41
|
+
x: number[];
|
|
42
|
+
y: number[];
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* 经纬度坐标由度分秒转十进制度
|
|
46
|
+
* @param dms - { x:[], y:[] }
|
|
47
|
+
* @returns - { x, y }
|
|
48
|
+
*/
|
|
49
|
+
declare const transformDMSToWGS84: (dms: {
|
|
50
|
+
x: number[];
|
|
51
|
+
y: number[];
|
|
52
|
+
}) => {
|
|
53
|
+
x: number;
|
|
54
|
+
y: number;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* 十进制度转度分秒
|
|
58
|
+
* @param degree 十进制度坐标值
|
|
59
|
+
* @returns [ degrees, minutes, seconds ]
|
|
60
|
+
*/
|
|
61
|
+
declare const transformDegreeToDMS: (degree: number) => number[];
|
|
62
|
+
/**
|
|
63
|
+
* 度分秒转十进制度
|
|
64
|
+
* @param dms 度分秒坐标值
|
|
65
|
+
* @returns 十进制度坐标值
|
|
66
|
+
*/
|
|
67
|
+
declare const transformDMSToDegree: (dms: number[]) => number;
|
|
68
|
+
/**
|
|
69
|
+
* 获取屏幕点的笛卡尔坐标
|
|
70
|
+
* @param viewer 三维场景viewer
|
|
71
|
+
* @param px 屏幕像素点
|
|
72
|
+
* @returns {Object} Cartesian3 | null
|
|
73
|
+
*/
|
|
74
|
+
declare const getCatesian3FromPX: (viewer: any, px: {
|
|
75
|
+
x: number;
|
|
76
|
+
y: number;
|
|
77
|
+
}) => any;
|
|
78
|
+
/**
|
|
79
|
+
* 计算两点对于正北方向的朝向角度 [0,360]
|
|
80
|
+
* @param start format:{'x': 130, 'y': 20 }
|
|
81
|
+
* @param end format:{'x': 130, 'y': 20 }
|
|
82
|
+
* @returns
|
|
83
|
+
*/
|
|
84
|
+
declare const calculateAngle: (start: {
|
|
85
|
+
x: number;
|
|
86
|
+
y: number;
|
|
87
|
+
}, end: {
|
|
88
|
+
x: number;
|
|
89
|
+
y: number;
|
|
90
|
+
}) => number;
|
|
91
|
+
/**
|
|
92
|
+
* 计算旋转矩阵
|
|
93
|
+
* @param cartesian 位置点(Cartesian3)
|
|
94
|
+
* @param hpr 旋转角:[heading, pitch, roll],单位度
|
|
95
|
+
* @returns
|
|
96
|
+
*/
|
|
97
|
+
declare const calculateOrientation: (cartesian: any, hpr: number[]) => Cesium.Quaternion;
|
|
98
|
+
export { calculateAngle, calculateOrientation, getCameraCentor, getCatesian3FromPX, transformCartesianToWGS84, transformDMSToDegree, transformDMSToWGS84, transformDegreeToDMS, transformWGS84ToCartesian, transformWGS84ToDMS, };
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 地图坐标相关方法
|
|
3
|
+
*/
|
|
4
|
+
import * as Cesium from 'deeptwins-cesium';
|
|
5
|
+
/**
|
|
6
|
+
* 获取屏幕中心点坐标,参数传空返回笛卡尔坐标
|
|
7
|
+
* @param type "cartesian"-笛卡尔,"degree"-经纬度
|
|
8
|
+
* @returns {object} {x,y,z}
|
|
9
|
+
*/
|
|
10
|
+
var getCameraCentor = function getCameraCentor(viewer, type) {
|
|
11
|
+
var cartesian2 = new Cesium.Cartesian2(viewer.canvas.clientWidth / 2, viewer.canvas.clientHeight / 2);
|
|
12
|
+
var cartesian3 = getCatesian3FromPX(viewer, cartesian2);
|
|
13
|
+
return type === 'degree' ? transformCartesianToWGS84(cartesian3) : cartesian3;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* 经纬度转笛卡尔坐标
|
|
17
|
+
* @param position - { x, y, z }
|
|
18
|
+
* @returns {Object} Cartesian3
|
|
19
|
+
*/
|
|
20
|
+
var transformWGS84ToCartesian = function transformWGS84ToCartesian(position) {
|
|
21
|
+
return position ? Cesium.Cartesian3.fromDegrees(position.x, position.y, position.z, Cesium.Ellipsoid.WGS84) : Cesium.Cartesian3.ZERO;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* 笛卡尔坐标转经纬度
|
|
25
|
+
* @param cartesian Cartesian3
|
|
26
|
+
* @returns {Object} { x, y, z }
|
|
27
|
+
*/
|
|
28
|
+
var transformCartesianToWGS84 = function transformCartesianToWGS84(cartesian) {
|
|
29
|
+
var ellipsoid = Cesium.Ellipsoid.WGS84;
|
|
30
|
+
var cartographic = ellipsoid.cartesianToCartographic(cartesian);
|
|
31
|
+
var x = Cesium.Math.toDegrees(cartographic.longitude);
|
|
32
|
+
var y = Cesium.Math.toDegrees(cartographic.latitude);
|
|
33
|
+
var z = cartographic.height;
|
|
34
|
+
return {
|
|
35
|
+
x: x,
|
|
36
|
+
y: y,
|
|
37
|
+
z: z
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* 经纬度坐标由十进制度转度分秒
|
|
42
|
+
* @param position - { x, y, z }
|
|
43
|
+
* @returns - { x:[], y:[] }
|
|
44
|
+
*/
|
|
45
|
+
var transformWGS84ToDMS = function transformWGS84ToDMS(position) {
|
|
46
|
+
var x = transformDegreeToDMS(position.x);
|
|
47
|
+
var y = transformDegreeToDMS(position.y);
|
|
48
|
+
return {
|
|
49
|
+
x: x,
|
|
50
|
+
y: y
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* 经纬度坐标由度分秒转十进制度
|
|
55
|
+
* @param dms - { x:[], y:[] }
|
|
56
|
+
* @returns - { x, y }
|
|
57
|
+
*/
|
|
58
|
+
var transformDMSToWGS84 = function transformDMSToWGS84(dms) {
|
|
59
|
+
var x = transformDMSToDegree(dms.x);
|
|
60
|
+
var y = transformDMSToDegree(dms.y);
|
|
61
|
+
return {
|
|
62
|
+
x: x,
|
|
63
|
+
y: y
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* 十进制度转度分秒
|
|
68
|
+
* @param degree 十进制度坐标值
|
|
69
|
+
* @returns [ degrees, minutes, seconds ]
|
|
70
|
+
*/
|
|
71
|
+
var transformDegreeToDMS = function transformDegreeToDMS(degree) {
|
|
72
|
+
var value = degree.toString();
|
|
73
|
+
var i = value.indexOf('.');
|
|
74
|
+
var _degrees = i < 0 ? degree : Number(value.substring(0, i)); //获取度
|
|
75
|
+
var _minutes = 0;
|
|
76
|
+
var _seconds = 0;
|
|
77
|
+
if (i > 0) {
|
|
78
|
+
var minutes = Number(value.substring(i)) * 60;
|
|
79
|
+
var strMinutes = minutes.toString();
|
|
80
|
+
var n = strMinutes.indexOf('.');
|
|
81
|
+
_minutes = n < 0 ? minutes : Number(strMinutes.substring(0, n));
|
|
82
|
+
if (n > 0) {
|
|
83
|
+
var seconds = Number(strMinutes.substring(n)) * 60;
|
|
84
|
+
_seconds = Number(seconds.toFixed(2));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return [_degrees, _minutes, _seconds];
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* 度分秒转十进制度
|
|
91
|
+
* @param dms 度分秒坐标值
|
|
92
|
+
* @returns 十进制度坐标值
|
|
93
|
+
*/
|
|
94
|
+
var transformDMSToDegree = function transformDMSToDegree(dms) {
|
|
95
|
+
var _degrees = dms[0];
|
|
96
|
+
var _minutes = dms[1] ? dms[1] / 60 : 0;
|
|
97
|
+
var _seconds = dms[2] ? dms[2] / 3600 : 0;
|
|
98
|
+
var dmsResult = _degrees + _minutes + _seconds;
|
|
99
|
+
return dmsResult;
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* 获取屏幕点的笛卡尔坐标
|
|
104
|
+
* @param viewer 三维场景viewer
|
|
105
|
+
* @param px 屏幕像素点
|
|
106
|
+
* @returns {Object} Cartesian3 | null
|
|
107
|
+
*/
|
|
108
|
+
var getCatesian3FromPX = function getCatesian3FromPX(viewer, px) {
|
|
109
|
+
var cartesian = null;
|
|
110
|
+
var isOn3dtiles = false;
|
|
111
|
+
var isOnTerrain = false;
|
|
112
|
+
// drillPick
|
|
113
|
+
var picks = viewer.scene.drillPick(px);
|
|
114
|
+
for (var i in picks) {
|
|
115
|
+
var pick = picks[i];
|
|
116
|
+
if (pick && pick.primitive instanceof Cesium.Cesium3DTileFeature || pick && pick.primitive instanceof Cesium.Cesium3DTileset || pick && pick.primitive instanceof Cesium.Model) {
|
|
117
|
+
//模型上拾取位置点
|
|
118
|
+
isOn3dtiles = true;
|
|
119
|
+
return viewer.scene.pickPosition(px);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
var noTerrain = viewer.terrainProvider instanceof Cesium.EllipsoidTerrainProvider; // 判断是否有地形
|
|
123
|
+
// 在地形上拾取位置点
|
|
124
|
+
if (!isOn3dtiles && !noTerrain) {
|
|
125
|
+
var ray = viewer.scene.camera.getPickRay(px);
|
|
126
|
+
if (!ray) return null;
|
|
127
|
+
isOnTerrain = true;
|
|
128
|
+
cartesian = viewer.scene.globe.pick(ray, viewer.scene);
|
|
129
|
+
}
|
|
130
|
+
// 在普通地球上拾取位置点
|
|
131
|
+
if (!isOn3dtiles && !isOnTerrain && noTerrain) {
|
|
132
|
+
cartesian = viewer.scene.camera.pickEllipsoid(px, viewer.scene.globe.ellipsoid);
|
|
133
|
+
}
|
|
134
|
+
return cartesian;
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
/*
|
|
138
|
+
* 计算两点对于正北方向的朝向角度 [0,360]
|
|
139
|
+
* @param {*} start format:{'x': 130, 'y': 20 }
|
|
140
|
+
* @param {*} end
|
|
141
|
+
*/
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* 计算两点对于正北方向的朝向角度 [0,360]
|
|
145
|
+
* @param start format:{'x': 130, 'y': 20 }
|
|
146
|
+
* @param end format:{'x': 130, 'y': 20 }
|
|
147
|
+
* @returns
|
|
148
|
+
*/
|
|
149
|
+
var calculateAngle = function calculateAngle(start, end) {
|
|
150
|
+
var rad = Math.PI / 180,
|
|
151
|
+
lat1 = start.y * rad,
|
|
152
|
+
lat2 = end.y * rad,
|
|
153
|
+
lon1 = start.x * rad,
|
|
154
|
+
lon2 = end.x * rad;
|
|
155
|
+
var a = Math.sin(lon2 - lon1) * Math.cos(lat2);
|
|
156
|
+
var b = Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1) * Math.cos(lat2) * Math.cos(lon2 - lon1);
|
|
157
|
+
return radiansToDegrees(Math.atan2(a, b));
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
/*
|
|
161
|
+
* 弧度转换为角度
|
|
162
|
+
*/
|
|
163
|
+
function radiansToDegrees(radians) {
|
|
164
|
+
var degrees = radians % (2 * Math.PI);
|
|
165
|
+
return degrees * 180 / Math.PI < 0 ? 360 + degrees * 180 / Math.PI : degrees * 180 / Math.PI;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* 计算旋转矩阵
|
|
169
|
+
* @param cartesian 位置点(Cartesian3)
|
|
170
|
+
* @param hpr 旋转角:[heading, pitch, roll],单位度
|
|
171
|
+
* @returns
|
|
172
|
+
*/
|
|
173
|
+
var calculateOrientation = function calculateOrientation(cartesian, hpr) {
|
|
174
|
+
var heading = Cesium.Math.toRadians(hpr[0]);
|
|
175
|
+
//弧度的螺距分量。
|
|
176
|
+
var pitch = Cesium.Math.toRadians(hpr[1]);
|
|
177
|
+
//滚动分量(结果以弧度为单位)
|
|
178
|
+
var roll = Cesium.Math.toRadians(hpr[2]);
|
|
179
|
+
//HeadingPitchRoll旋转表示为航向,俯仰和滚动。围绕Z轴。节距是绕负y轴的旋转。滚动是关于正x轴。
|
|
180
|
+
var _hpr = new Cesium.HeadingPitchRoll(heading, pitch, roll);
|
|
181
|
+
var orientation = Cesium.Transforms.headingPitchRollQuaternion(cartesian, _hpr);
|
|
182
|
+
return orientation;
|
|
183
|
+
};
|
|
184
|
+
export { calculateAngle, calculateOrientation, getCameraCentor, getCatesian3FromPX, transformCartesianToWGS84, transformDMSToDegree, transformDMSToWGS84, transformDegreeToDMS, transformWGS84ToCartesian, transformWGS84ToDMS };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import '../index.css';
|
|
2
|
+
interface WindowPos {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
}
|
|
6
|
+
interface AttributeOption {
|
|
7
|
+
id: string;
|
|
8
|
+
coord: {
|
|
9
|
+
x: number;
|
|
10
|
+
y: number;
|
|
11
|
+
z: number;
|
|
12
|
+
};
|
|
13
|
+
size: string;
|
|
14
|
+
text: string;
|
|
15
|
+
}
|
|
16
|
+
export declare class LabelAttributeForm {
|
|
17
|
+
_viewer: any;
|
|
18
|
+
_winPos: WindowPos;
|
|
19
|
+
_id: string;
|
|
20
|
+
_coord: {
|
|
21
|
+
x: number;
|
|
22
|
+
y: number;
|
|
23
|
+
z: number;
|
|
24
|
+
};
|
|
25
|
+
_size: string;
|
|
26
|
+
_text: string;
|
|
27
|
+
_customDiv: HTMLElement | null;
|
|
28
|
+
constructor(viewer: any, winPos: WindowPos, options: AttributeOption);
|
|
29
|
+
initDom(): void;
|
|
30
|
+
initEvent(): void;
|
|
31
|
+
confirm(bool: boolean): void;
|
|
32
|
+
destroy(): void;
|
|
33
|
+
}
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
3
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
4
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
5
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
7
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
8
|
+
/**
|
|
9
|
+
* Dom元素创建
|
|
10
|
+
*/
|
|
11
|
+
import * as Cesium from 'deeptwins-cesium';
|
|
12
|
+
import "../index.css";
|
|
13
|
+
import { transformWGS84ToCartesian } from "./Coordinate";
|
|
14
|
+
import { getLabelText } from "./PlotCommon";
|
|
15
|
+
export var LabelAttributeForm = /*#__PURE__*/function () {
|
|
16
|
+
function LabelAttributeForm(viewer, winPos, options) {
|
|
17
|
+
_classCallCheck(this, LabelAttributeForm);
|
|
18
|
+
_defineProperty(this, "_viewer", void 0);
|
|
19
|
+
_defineProperty(this, "_winPos", void 0);
|
|
20
|
+
_defineProperty(this, "_id", void 0);
|
|
21
|
+
_defineProperty(this, "_coord", void 0);
|
|
22
|
+
_defineProperty(this, "_size", void 0);
|
|
23
|
+
_defineProperty(this, "_text", void 0);
|
|
24
|
+
_defineProperty(this, "_customDiv", void 0);
|
|
25
|
+
this._winPos = winPos;
|
|
26
|
+
this._viewer = viewer;
|
|
27
|
+
this._id = options.id || 'undefined';
|
|
28
|
+
this._coord = options.coord || new Cesium.Cartesian3();
|
|
29
|
+
this._size = options.size || '45';
|
|
30
|
+
this._text = options.text || 'null';
|
|
31
|
+
this._customDiv = null;
|
|
32
|
+
this.initDom();
|
|
33
|
+
}
|
|
34
|
+
_createClass(LabelAttributeForm, [{
|
|
35
|
+
key: "initDom",
|
|
36
|
+
value: function initDom() {
|
|
37
|
+
this._customDiv = document.getElementById('label-attribute-form');
|
|
38
|
+
if (!this._customDiv) {
|
|
39
|
+
this._customDiv = document.createElement('div');
|
|
40
|
+
this._customDiv.id = 'label-attribute-form';
|
|
41
|
+
this._viewer.container.appendChild(this._customDiv);
|
|
42
|
+
}
|
|
43
|
+
this._customDiv.style.top = this._winPos.y + 'px';
|
|
44
|
+
this._customDiv.style.left = this._winPos.x + 'px';
|
|
45
|
+
this._customDiv.innerHTML = " \n <div>\n <span class=\"title\">\u5BF9\u8C61\u7F16\u53F7\uFF1A</span>\n <span>".concat(this._id, "</span>\n </div>\n <div>\n <span class=\"title\">\u6587\u5B57\u6807\u7B7E\uFF1A</span>\n <input type=\"text\" id=\"text-value\" value=\"").concat(this._text, "\" />\n </div>\n <div>\n <span class=\"title\">\u7ECF\u7EAC\u5750\u6807\uFF1A</span>\n <input type=\"text\" id=\"coor-xy\" value=\"").concat(this._coord.x, ",").concat(this._coord.y, "\" />\n </div>\n <div>\n <span class=\"title\">\u5B57\u4F53\u5927\u5C0F\uFF1A</span>\n <input type=\"number\" id=\"font-size\" value=\"").concat(this._size, "\" />\n </div>\n <div class=\"label-ar-tool-box\">\n <button id=\"label_edit_ok\">\u786E\u8BA4</button>\n <button id=\"label_edit_no\">\u53D6\u6D88</button>\n </div>");
|
|
46
|
+
this.initEvent();
|
|
47
|
+
}
|
|
48
|
+
}, {
|
|
49
|
+
key: "initEvent",
|
|
50
|
+
value: function initEvent() {
|
|
51
|
+
var $this = this;
|
|
52
|
+
var ok_bt = document.getElementById('label_edit_ok');
|
|
53
|
+
if (ok_bt) {
|
|
54
|
+
ok_bt.onclick = function () {
|
|
55
|
+
$this.confirm(true);
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
var no_bt = document.getElementById('label_edit_no');
|
|
59
|
+
if (no_bt) {
|
|
60
|
+
no_bt.onclick = function () {
|
|
61
|
+
$this.confirm(false);
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}, {
|
|
66
|
+
key: "confirm",
|
|
67
|
+
value: function confirm(bool) {
|
|
68
|
+
var editEntity = this._viewer.entities.getById(this._id);
|
|
69
|
+
if (bool) {
|
|
70
|
+
var coordDom = document.getElementById('coor-xy');
|
|
71
|
+
var pos = coordDom.value.split(',');
|
|
72
|
+
var car3 = transformWGS84ToCartesian({
|
|
73
|
+
x: Number(pos[0]),
|
|
74
|
+
y: Number(pos[1]),
|
|
75
|
+
z: 0
|
|
76
|
+
});
|
|
77
|
+
editEntity.position = new Cesium.CallbackProperty(function () {
|
|
78
|
+
return car3;
|
|
79
|
+
}, false);
|
|
80
|
+
var textDom = document.getElementById('text-value');
|
|
81
|
+
var text = getLabelText(textDom.value, 1);
|
|
82
|
+
editEntity.label.text = new Cesium.CallbackProperty(function () {
|
|
83
|
+
return text;
|
|
84
|
+
}, false);
|
|
85
|
+
var fontDom = document.getElementById('font-size');
|
|
86
|
+
var font = fontDom.value + 'px Helvetica';
|
|
87
|
+
editEntity.label.font = new Cesium.CallbackProperty(function () {
|
|
88
|
+
return font;
|
|
89
|
+
}, false);
|
|
90
|
+
}
|
|
91
|
+
this.destroy();
|
|
92
|
+
}
|
|
93
|
+
}, {
|
|
94
|
+
key: "destroy",
|
|
95
|
+
value: function destroy() {
|
|
96
|
+
this._viewer.container.removeChild(this._customDiv);
|
|
97
|
+
}
|
|
98
|
+
}]);
|
|
99
|
+
return LabelAttributeForm;
|
|
100
|
+
}();
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 态势标绘通用方法
|
|
3
|
+
*/
|
|
4
|
+
import * as Cesium from 'deeptwins-cesium';
|
|
5
|
+
/**
|
|
6
|
+
* 获取静态资源路径
|
|
7
|
+
* @param url 路径
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* 创建随机(唯一)ID
|
|
12
|
+
* @param num
|
|
13
|
+
* @returns
|
|
14
|
+
*/
|
|
15
|
+
declare const newSessionid: (num?: number) => string;
|
|
16
|
+
/**
|
|
17
|
+
* 锁定视图
|
|
18
|
+
* @param viewer - 三维场景
|
|
19
|
+
* @param bool - 是否锁定
|
|
20
|
+
*/
|
|
21
|
+
declare const lockingMap: (viewer: any, bool: boolean) => void;
|
|
22
|
+
/**
|
|
23
|
+
* 创建贝塞尔点集
|
|
24
|
+
* @param anchorpoints
|
|
25
|
+
* @returns
|
|
26
|
+
*/
|
|
27
|
+
declare const createBezierPoints: (anchorpoints: any[]) => any;
|
|
28
|
+
/**
|
|
29
|
+
* 创建正多边形节点
|
|
30
|
+
* @param centerPoint
|
|
31
|
+
* @param endCartesian
|
|
32
|
+
* @param num
|
|
33
|
+
* @returns
|
|
34
|
+
*/
|
|
35
|
+
declare const getRegularPoints: (centerPoint: any, endCartesian: any, num: number) => any;
|
|
36
|
+
/**
|
|
37
|
+
* 创建攻击箭头节点
|
|
38
|
+
* @param positions
|
|
39
|
+
* @returns
|
|
40
|
+
*/
|
|
41
|
+
declare const getAttackArrowPoints: (positions: any[]) => any;
|
|
42
|
+
/**
|
|
43
|
+
* 创建直角箭头节点
|
|
44
|
+
* @param anchorpoints
|
|
45
|
+
* @returns
|
|
46
|
+
*/
|
|
47
|
+
declare const getRightAngleArrowPoints: (anchorpoints: any[]) => Cesium.Cartesian3[];
|
|
48
|
+
/**
|
|
49
|
+
* 获取椭圆和圆形的轴长
|
|
50
|
+
* @param points
|
|
51
|
+
* @returns
|
|
52
|
+
*/
|
|
53
|
+
declare const getSemiAxis: (points: any[]) => number;
|
|
54
|
+
/**
|
|
55
|
+
* 获取椭圆旋转的角度
|
|
56
|
+
* @param points
|
|
57
|
+
* @returns
|
|
58
|
+
*/
|
|
59
|
+
declare const getEllipticAngle: (points: any[]) => number;
|
|
60
|
+
/**
|
|
61
|
+
* 获取矩形顶点
|
|
62
|
+
* @param points
|
|
63
|
+
* @returns
|
|
64
|
+
*/
|
|
65
|
+
declare const calculateRectanglePoints: (points: any[]) => Cesium.Cartesian3[];
|
|
66
|
+
/**
|
|
67
|
+
* 计算集结地特征点
|
|
68
|
+
* @param anchorpoints
|
|
69
|
+
* @returns {Array}
|
|
70
|
+
* @private
|
|
71
|
+
*/
|
|
72
|
+
declare const computeAssemblePoints: (anchorpoints: any[]) => number[];
|
|
73
|
+
declare const calculateSwallowPoints: (anchorpoints: any[], type: number) => any[];
|
|
74
|
+
/**
|
|
75
|
+
* 计算钳击箭头特征点
|
|
76
|
+
* @param points
|
|
77
|
+
* @returns
|
|
78
|
+
*/
|
|
79
|
+
declare const calculatePincerArrowPoint: (points: any[]) => any;
|
|
80
|
+
declare const calculateFlagPoints: (points: any[], type?: number) => Cesium.Cartesian3[];
|
|
81
|
+
/**
|
|
82
|
+
* 计算并构建阵型过程点
|
|
83
|
+
* @param {*} anchorpoints
|
|
84
|
+
* @returns
|
|
85
|
+
*/
|
|
86
|
+
declare const calculateFormationPoints: (anchorpoints: any[], type: number) => Cesium.Cartesian3[];
|
|
87
|
+
/**
|
|
88
|
+
* 计算并构建弓形过程点
|
|
89
|
+
* @param {*} anchorpoints
|
|
90
|
+
* @returns
|
|
91
|
+
*/
|
|
92
|
+
declare const calculateBowPoints: (anchorpoints: any[]) => Cesium.Cartesian3[];
|
|
93
|
+
/**
|
|
94
|
+
* 计算圆角矩形节点
|
|
95
|
+
* @param anchor
|
|
96
|
+
* @returns
|
|
97
|
+
*/
|
|
98
|
+
declare const computeRoundedRectanglePoints: (anchorpoints: any[]) => Cesium.Cartesian3[];
|
|
99
|
+
declare const calculateSectorPoints: (points: any[]) => Cesium.Cartesian3[];
|
|
100
|
+
declare const getLabelText: (text: string, type: number) => string;
|
|
101
|
+
export { calculateBowPoints, calculateFlagPoints, calculateFormationPoints, calculatePincerArrowPoint, calculateRectanglePoints, calculateSectorPoints, calculateSwallowPoints, computeAssemblePoints, computeRoundedRectanglePoints, createBezierPoints, getAttackArrowPoints, getEllipticAngle, getLabelText, getRegularPoints, getRightAngleArrowPoints, getSemiAxis, lockingMap, newSessionid, };
|