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
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import type Cesium from 'deeptwins-cesium';
|
|
2
|
-
import type { Cartesian3, EllipseGraphics, Entity, PointGraphics, PolygonGraphics, PolylineGraphics, RectangleGraphics } from 'deeptwins-cesium';
|
|
3
|
-
import Drawer from '.';
|
|
4
|
-
import type { EventArgs, EventType } from '../tool/cesiumExtends/Subscriber';
|
|
5
|
-
import type { BasicGraphicsOptions } from './base';
|
|
6
|
-
export type hierarchyHandler = (hierarchy: Cesium.Cartesian3[] | Cesium.CallbackProperty | Cartesian3) => Cesium.Entity.ConstructorOptions;
|
|
7
|
-
export type OverrideEntityFunc = (this: Drawer, action: EventType, entity: Entity) => Entity | void;
|
|
8
|
-
export type OperationType = {
|
|
9
|
-
/**
|
|
10
|
-
* @desc 勾画开始事件
|
|
11
|
-
* @type EventType
|
|
12
|
-
* @default LEFT_CLICK
|
|
13
|
-
*/
|
|
14
|
-
START?: EventType;
|
|
15
|
-
/**
|
|
16
|
-
* @desc 勾画移动事件
|
|
17
|
-
* @type EventType
|
|
18
|
-
* @default MOUSE_MOVE
|
|
19
|
-
*/
|
|
20
|
-
MOVING?: EventType;
|
|
21
|
-
/**
|
|
22
|
-
* @desc 勾画撤销事件
|
|
23
|
-
* @type EventType
|
|
24
|
-
* @default RIGHT_CLICK
|
|
25
|
-
*/
|
|
26
|
-
CANCEL?: EventType;
|
|
27
|
-
/**
|
|
28
|
-
* @desc 勾画结束事件
|
|
29
|
-
* @type EventType
|
|
30
|
-
* @default LEFT_DOUBLE_CLICK
|
|
31
|
-
*/
|
|
32
|
-
END?: EventType;
|
|
33
|
-
};
|
|
34
|
-
export type DrawerCallback = (entity: Entity) => void;
|
|
35
|
-
/**
|
|
36
|
-
* @desc 操作回调
|
|
37
|
-
* @param action 事件名
|
|
38
|
-
* @param move 事件参数
|
|
39
|
-
*/
|
|
40
|
-
export type ActionCallback = (action: EventType, move: EventArgs) => void;
|
|
41
|
-
/**
|
|
42
|
-
* 绘制状态
|
|
43
|
-
*/
|
|
44
|
-
export type Status = 'INIT' | 'START' | 'PAUSE' | 'DESTROY';
|
|
45
|
-
export interface DrawOption {
|
|
46
|
-
/**
|
|
47
|
-
* @desc 是否使用地形,当开启时需要浏览器支持地形选取功能,如果不支持将会被关闭
|
|
48
|
-
*/
|
|
49
|
-
terrain: boolean;
|
|
50
|
-
/** 是否在模型上选点 */
|
|
51
|
-
model: boolean;
|
|
52
|
-
/**
|
|
53
|
-
* @desc 操作方式
|
|
54
|
-
*/
|
|
55
|
-
operateType: OperationType;
|
|
56
|
-
dynamicGraphicsOptions: {
|
|
57
|
-
point: PointGraphics.ConstructorOptions;
|
|
58
|
-
polyline: PolylineGraphics.ConstructorOptions;
|
|
59
|
-
polygon: PolygonGraphics.ConstructorOptions;
|
|
60
|
-
ellipse: EllipseGraphics.ConstructorOptions;
|
|
61
|
-
rectangle: RectangleGraphics.ConstructorOptions;
|
|
62
|
-
};
|
|
63
|
-
/**
|
|
64
|
-
* 鼠标事件回调
|
|
65
|
-
*/
|
|
66
|
-
action?: ActionCallback;
|
|
67
|
-
sameStyle: boolean;
|
|
68
|
-
/** 自定义编辑时鼠标移动的提示 */
|
|
69
|
-
tips: {
|
|
70
|
-
/** 默认为 'Click to draw' */
|
|
71
|
-
init?: string | Element;
|
|
72
|
-
/** 默认为 'LeftClick to add a point, rightClick remove point, doubleClick end drawing' */
|
|
73
|
-
start?: string | Element;
|
|
74
|
-
/** 默认为 '' */
|
|
75
|
-
end?: string | Element;
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
export type StartOption = {
|
|
79
|
-
/**
|
|
80
|
-
* @desc 勾画类型 目前支持 Polygon、Line、Point、Circle、Rectangle
|
|
81
|
-
*/
|
|
82
|
-
type: 'polygon' | 'polyline' | 'point' | 'ellipse' | 'rectangle';
|
|
83
|
-
/**
|
|
84
|
-
* 是否只勾画一次,如果设为true,则在第一勾画结束时停止
|
|
85
|
-
* @default undefined
|
|
86
|
-
*/
|
|
87
|
-
once?: boolean;
|
|
88
|
-
/**
|
|
89
|
-
* @desc 是否使用单例模式,如果开启,当勾画第二个图形时会销毁第一个图形
|
|
90
|
-
*/
|
|
91
|
-
oneInstance?: boolean;
|
|
92
|
-
/**
|
|
93
|
-
* @desc 勾画的Entity选项,如Point对应#PointGraphics.ConstructorOptions
|
|
94
|
-
*/
|
|
95
|
-
finalOptions?: object;
|
|
96
|
-
/**
|
|
97
|
-
* @desc 动态勾画没有确定图形时的图形配置,类型与options选项相同
|
|
98
|
-
*/
|
|
99
|
-
dynamicOptions?: object;
|
|
100
|
-
/**
|
|
101
|
-
* 点改变的回调
|
|
102
|
-
*/
|
|
103
|
-
onPointsChange?: BasicGraphicsOptions['onPointsChange'];
|
|
104
|
-
/** 结束绘制的回调 */
|
|
105
|
-
complete?: (entity: Entity, positions: Cartesian3[], coordinates: any[]) => void;
|
|
106
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Cartesian3 } from 'deeptwins-cesium';
|
|
2
|
-
import Measure from './Measure';
|
|
3
|
-
import type { PolygonGraphics } from 'deeptwins-cesium';
|
|
4
|
-
/**
|
|
5
|
-
* 面积测量类
|
|
6
|
-
*/
|
|
7
|
-
declare class AreaMeasure extends Measure {
|
|
8
|
-
protected _updateLabelFunc(positions: Cartesian3[]): void;
|
|
9
|
-
/**
|
|
10
|
-
* 计算多边形面积
|
|
11
|
-
* @param {Cartesian3[]} positions 点位
|
|
12
|
-
* @returns {number} 面积/平方米
|
|
13
|
-
*/
|
|
14
|
-
getArea(positions: Cartesian3[]): number;
|
|
15
|
-
protected _updateLabelTexts(positions: Cartesian3[]): void;
|
|
16
|
-
protected _getDistance(pos1: Cartesian3, pos2: Cartesian3): number;
|
|
17
|
-
start(style?: PolygonGraphics.ConstructorOptions): void;
|
|
18
|
-
}
|
|
19
|
-
export default AreaMeasure;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { Cartesian3, Viewer } from 'deeptwins-cesium';
|
|
2
|
-
import AreaMeasure from './AreaMeasure';
|
|
3
|
-
import type { MeasureOptions } from './Measure';
|
|
4
|
-
/**
|
|
5
|
-
* 贴地面积量算类
|
|
6
|
-
*/
|
|
7
|
-
declare class AreaSurfaceMeasure extends AreaMeasure {
|
|
8
|
-
private _splitNum;
|
|
9
|
-
/**
|
|
10
|
-
* 贴地面积量算构造函数
|
|
11
|
-
* @param viewer
|
|
12
|
-
* @param [options.splitNum = 10] 插值数,将面分割的网格数, 默认为10
|
|
13
|
-
*/
|
|
14
|
-
constructor(viewer: Viewer, options?: MeasureOptions & {
|
|
15
|
-
splitNum?: number;
|
|
16
|
-
});
|
|
17
|
-
private _calculateSurfaceArea;
|
|
18
|
-
private calculateDetailSurfaceArea;
|
|
19
|
-
private _getWorldPositionsArea;
|
|
20
|
-
private _Cartesian2turfPolygon;
|
|
21
|
-
private _intersect;
|
|
22
|
-
private _turfPloygon2CartesianArr;
|
|
23
|
-
/**
|
|
24
|
-
* 计算贴地的多边形面积
|
|
25
|
-
* @param {Cartesian3[]} positions 点位
|
|
26
|
-
* @returns {number} 面积/平方米
|
|
27
|
-
*/
|
|
28
|
-
getArea(positions: Cartesian3[]): number;
|
|
29
|
-
}
|
|
30
|
-
export default AreaSurfaceMeasure;
|
|
@@ -1,151 +0,0 @@
|
|
|
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 _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
6
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
7
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
8
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
9
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
10
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
11
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
12
|
-
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; }
|
|
13
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
14
|
-
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); }
|
|
15
|
-
import { polygon } from '@turf/helpers';
|
|
16
|
-
import intersect from '@turf/intersect';
|
|
17
|
-
import { randomPoint } from '@turf/random';
|
|
18
|
-
import voronoi from '@turf/voronoi';
|
|
19
|
-
import { Cartesian2, Cartographic, EllipsoidGeodesic, SceneTransforms } from 'deeptwins-cesium';
|
|
20
|
-
import AreaMeasure from "./AreaMeasure";
|
|
21
|
-
import { getBounds, pickCartesian3 } from "./utils";
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* 贴地面积量算类
|
|
25
|
-
*/
|
|
26
|
-
var AreaSurfaceMeasure = /*#__PURE__*/function (_AreaMeasure) {
|
|
27
|
-
_inherits(AreaSurfaceMeasure, _AreaMeasure);
|
|
28
|
-
var _super = _createSuper(AreaSurfaceMeasure);
|
|
29
|
-
/**
|
|
30
|
-
* 贴地面积量算构造函数
|
|
31
|
-
* @param viewer
|
|
32
|
-
* @param [options.splitNum = 10] 插值数,将面分割的网格数, 默认为10
|
|
33
|
-
*/
|
|
34
|
-
function AreaSurfaceMeasure(viewer) {
|
|
35
|
-
var _options$splitNum;
|
|
36
|
-
var _this;
|
|
37
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
38
|
-
_classCallCheck(this, AreaSurfaceMeasure);
|
|
39
|
-
_this = _super.call(this, viewer, options);
|
|
40
|
-
_defineProperty(_assertThisInitialized(_this), "_splitNum", void 0);
|
|
41
|
-
_this._splitNum = (_options$splitNum = options.splitNum) !== null && _options$splitNum !== void 0 ? _options$splitNum : 10;
|
|
42
|
-
return _this;
|
|
43
|
-
}
|
|
44
|
-
_createClass(AreaSurfaceMeasure, [{
|
|
45
|
-
key: "_calculateSurfaceArea",
|
|
46
|
-
value: function _calculateSurfaceArea(positions) {
|
|
47
|
-
var _this2 = this;
|
|
48
|
-
var result = 0;
|
|
49
|
-
var bounds = getBounds(positions);
|
|
50
|
-
var points = randomPoint(this._splitNum, {
|
|
51
|
-
bbox: [bounds[0], bounds[1], bounds[2], bounds[3]]
|
|
52
|
-
});
|
|
53
|
-
var mainPoly = this._Cartesian2turfPolygon(positions);
|
|
54
|
-
var voronoiPolygons = voronoi(points, {
|
|
55
|
-
bbox: [bounds[0], bounds[1], bounds[2], bounds[3]]
|
|
56
|
-
});
|
|
57
|
-
voronoiPolygons.features.forEach(function (element) {
|
|
58
|
-
var intersectPoints = _this2._intersect(mainPoly, element.geometry);
|
|
59
|
-
result += _this2.calculateDetailSurfaceArea(intersectPoints);
|
|
60
|
-
});
|
|
61
|
-
return result;
|
|
62
|
-
}
|
|
63
|
-
}, {
|
|
64
|
-
key: "calculateDetailSurfaceArea",
|
|
65
|
-
value: function calculateDetailSurfaceArea(positions) {
|
|
66
|
-
var _this3 = this;
|
|
67
|
-
var worldPositions = [];
|
|
68
|
-
positions.forEach(function (element) {
|
|
69
|
-
var pickResult = pickCartesian3(_this3._viewer, element);
|
|
70
|
-
if (pickResult) worldPositions.push(pickResult);
|
|
71
|
-
});
|
|
72
|
-
return this._getWorldPositionsArea(worldPositions);
|
|
73
|
-
}
|
|
74
|
-
}, {
|
|
75
|
-
key: "_getWorldPositionsArea",
|
|
76
|
-
value: function _getWorldPositionsArea(positions) {
|
|
77
|
-
var x = [0];
|
|
78
|
-
var y = [0];
|
|
79
|
-
var geodesic = new EllipsoidGeodesic();
|
|
80
|
-
var radiansPerDegree = Math.PI / 180.0; //角度转化为弧度(rad)
|
|
81
|
-
//数组x,y分别按顺序存储各点的横、纵坐标值
|
|
82
|
-
for (var i = 0; i < positions.length - 1; i += 1) {
|
|
83
|
-
var p1 = positions[i];
|
|
84
|
-
var p2 = positions[i + 1];
|
|
85
|
-
var point1cartographic = Cartographic.fromCartesian(p1);
|
|
86
|
-
var point2cartographic = Cartographic.fromCartesian(p2);
|
|
87
|
-
geodesic.setEndPoints(point1cartographic, point2cartographic);
|
|
88
|
-
var s = Math.sqrt(Math.pow(geodesic.surfaceDistance, 2) + Math.pow(point2cartographic.height - point1cartographic.height, 2));
|
|
89
|
-
var lat1 = point2cartographic.latitude * radiansPerDegree;
|
|
90
|
-
var lon1 = point2cartographic.longitude * radiansPerDegree;
|
|
91
|
-
var lat2 = point1cartographic.latitude * radiansPerDegree;
|
|
92
|
-
var lon2 = point1cartographic.longitude * radiansPerDegree;
|
|
93
|
-
var angle = -Math.atan2(Math.sin(lon1 - lon2) * Math.cos(lat2), Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1) * Math.cos(lat2) * Math.cos(lon1 - lon2));
|
|
94
|
-
if (angle < 0) {
|
|
95
|
-
angle += Math.PI * 2.0;
|
|
96
|
-
}
|
|
97
|
-
y.push(Math.sin(angle) * s + y[i]);
|
|
98
|
-
x.push(Math.cos(angle) * s + x[i]);
|
|
99
|
-
}
|
|
100
|
-
var sum = 0;
|
|
101
|
-
for (var _i = 0; _i < x.length - 1; _i += 1) {
|
|
102
|
-
sum += x[_i] * y[_i + 1] - x[_i + 1] * y[_i];
|
|
103
|
-
}
|
|
104
|
-
return Math.abs(sum + x[x.length - 1] * y[0] - x[0] * y[y.length - 1]) / 2;
|
|
105
|
-
}
|
|
106
|
-
}, {
|
|
107
|
-
key: "_Cartesian2turfPolygon",
|
|
108
|
-
value: function _Cartesian2turfPolygon(positions) {
|
|
109
|
-
var coordinates = [[]];
|
|
110
|
-
positions.forEach(function (element) {
|
|
111
|
-
coordinates[0].push([element.x, element.y]);
|
|
112
|
-
});
|
|
113
|
-
coordinates[0].push([positions[0].x, positions[0].y]);
|
|
114
|
-
var pg = polygon(coordinates);
|
|
115
|
-
return pg.geometry;
|
|
116
|
-
}
|
|
117
|
-
}, {
|
|
118
|
-
key: "_intersect",
|
|
119
|
-
value: function _intersect(poly1, poly2) {
|
|
120
|
-
var intersection = intersect(poly1, poly2);
|
|
121
|
-
if ((intersection === null || intersection === void 0 ? void 0 : intersection.geometry) !== undefined) {
|
|
122
|
-
return this._turfPloygon2CartesianArr(intersection === null || intersection === void 0 ? void 0 : intersection.geometry);
|
|
123
|
-
} else {
|
|
124
|
-
return [];
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}, {
|
|
128
|
-
key: "_turfPloygon2CartesianArr",
|
|
129
|
-
value: function _turfPloygon2CartesianArr(polygon) {
|
|
130
|
-
return polygon.coordinates[0].map(function (item) {
|
|
131
|
-
return new Cartesian2(item[0], item[1]);
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* 计算贴地的多边形面积
|
|
137
|
-
* @param {Cartesian3[]} positions 点位
|
|
138
|
-
* @returns {number} 面积/平方米
|
|
139
|
-
*/
|
|
140
|
-
}, {
|
|
141
|
-
key: "getArea",
|
|
142
|
-
value: function getArea(positions) {
|
|
143
|
-
var _this4 = this;
|
|
144
|
-
return this._calculateSurfaceArea(positions.map(function (item) {
|
|
145
|
-
return SceneTransforms.worldToWindowCoordinates(_this4._viewer.scene, item);
|
|
146
|
-
}));
|
|
147
|
-
}
|
|
148
|
-
}]);
|
|
149
|
-
return AreaSurfaceMeasure;
|
|
150
|
-
}(AreaMeasure);
|
|
151
|
-
export default AreaSurfaceMeasure;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Cartesian3 } from 'deeptwins-cesium';
|
|
2
|
-
import Measure from './Measure';
|
|
3
|
-
import type { PolylineGraphics } from 'deeptwins-cesium';
|
|
4
|
-
/**
|
|
5
|
-
* 距离测量类
|
|
6
|
-
*/
|
|
7
|
-
declare class DistanceMeasure extends Measure {
|
|
8
|
-
protected _updateLabelFunc(positions: Cartesian3[]): void;
|
|
9
|
-
/**
|
|
10
|
-
* 计算两点之间的距离
|
|
11
|
-
* @param {Cartesian3} start 点位1
|
|
12
|
-
* @param {Cartesian3} end 点位2
|
|
13
|
-
* @returns {number} 距离/米
|
|
14
|
-
*/
|
|
15
|
-
getDistance(start: Cartesian3, end: Cartesian3): number;
|
|
16
|
-
protected _updateLabelTexts(positions: Cartesian3[]): void;
|
|
17
|
-
start(style?: PolylineGraphics.ConstructorOptions): void;
|
|
18
|
-
}
|
|
19
|
-
export default DistanceMeasure;
|
|
@@ -1,91 +0,0 @@
|
|
|
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 ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
-
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; }
|
|
5
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
6
|
-
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); } }
|
|
7
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
8
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
9
|
-
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); }
|
|
10
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
11
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
12
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
13
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
14
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
15
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
16
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
17
|
-
import { convertLength } from '@turf/helpers';
|
|
18
|
-
import { Cartesian3 } from 'deeptwins-cesium';
|
|
19
|
-
import Measure from "./Measure";
|
|
20
|
-
/**
|
|
21
|
-
* 距离测量类
|
|
22
|
-
*/
|
|
23
|
-
var DistanceMeasure = /*#__PURE__*/function (_Measure) {
|
|
24
|
-
_inherits(DistanceMeasure, _Measure);
|
|
25
|
-
var _super = _createSuper(DistanceMeasure);
|
|
26
|
-
function DistanceMeasure() {
|
|
27
|
-
_classCallCheck(this, DistanceMeasure);
|
|
28
|
-
return _super.apply(this, arguments);
|
|
29
|
-
}
|
|
30
|
-
_createClass(DistanceMeasure, [{
|
|
31
|
-
key: "_updateLabelFunc",
|
|
32
|
-
value: function _updateLabelFunc(positions) {
|
|
33
|
-
var _this = this;
|
|
34
|
-
this._labels.removeAll();
|
|
35
|
-
positions.forEach(function (position) {
|
|
36
|
-
var newLabel = _objectSpread({
|
|
37
|
-
position: position
|
|
38
|
-
}, _this._labelStyle);
|
|
39
|
-
_this._labels.add(newLabel);
|
|
40
|
-
});
|
|
41
|
-
this._updateLabelTexts(positions);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* 计算两点之间的距离
|
|
46
|
-
* @param {Cartesian3} start 点位1
|
|
47
|
-
* @param {Cartesian3} end 点位2
|
|
48
|
-
* @returns {number} 距离/米
|
|
49
|
-
*/
|
|
50
|
-
}, {
|
|
51
|
-
key: "getDistance",
|
|
52
|
-
value: function getDistance(start, end) {
|
|
53
|
-
return Cartesian3.distance(start, end);
|
|
54
|
-
}
|
|
55
|
-
}, {
|
|
56
|
-
key: "_updateLabelTexts",
|
|
57
|
-
value: function _updateLabelTexts(positions) {
|
|
58
|
-
var num = positions.length;
|
|
59
|
-
var distance = 0;
|
|
60
|
-
for (var i = 0; i < num; i += 1) {
|
|
61
|
-
var label = this._labels.get(i);
|
|
62
|
-
if (i === 0) {
|
|
63
|
-
label.text = this._locale.start;
|
|
64
|
-
continue;
|
|
65
|
-
} else {
|
|
66
|
-
var newDis = +this.getDistance(positions[i - 1], positions[i]).toFixed(2);
|
|
67
|
-
var unitedNewDis = +convertLength(newDis, 'meters', this._units).toFixed(2);
|
|
68
|
-
distance += newDis;
|
|
69
|
-
distance = +distance.toFixed(2);
|
|
70
|
-
var unitedDistance = +convertLength(distance, 'meters', this._units).toFixed(2);
|
|
71
|
-
// @ts-ignore
|
|
72
|
-
label.total = distance;
|
|
73
|
-
// @ts-ignore
|
|
74
|
-
label.prev = newDis;
|
|
75
|
-
label.text = (i === num - 1 ? "".concat(this._locale.total, ": ") : '') + this._locale.formatLength(distance, unitedDistance, this._units) + (i > 1 ? "\n(+".concat(this._locale.formatLength(newDis, unitedNewDis, this._units), ")") : '');
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}, {
|
|
80
|
-
key: "start",
|
|
81
|
-
value: function start() {
|
|
82
|
-
var style = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
83
|
-
this._start('polyline', {
|
|
84
|
-
style: style,
|
|
85
|
-
clampToGround: false
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
}]);
|
|
89
|
-
return DistanceMeasure;
|
|
90
|
-
}(Measure);
|
|
91
|
-
export default DistanceMeasure;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import DistanceMeasure from './DistanceMeasure';
|
|
2
|
-
import type { Cartesian3, PolylineGraphics, Viewer } from 'deeptwins-cesium';
|
|
3
|
-
import type { MeasureOptions } from './Measure';
|
|
4
|
-
/**
|
|
5
|
-
* 贴地距离测量类
|
|
6
|
-
*/
|
|
7
|
-
declare class DistanceSurfaceMeasure extends DistanceMeasure {
|
|
8
|
-
private _splitNum;
|
|
9
|
-
constructor(viewer: Viewer, options?: MeasureOptions & {
|
|
10
|
-
splitNum?: number;
|
|
11
|
-
});
|
|
12
|
-
/**
|
|
13
|
-
* 计算线段的表面距离
|
|
14
|
-
* @param startPoint -线段起点的屏幕坐标
|
|
15
|
-
* @param endPoint -线段终点的屏幕坐标
|
|
16
|
-
* @returns 表面距离
|
|
17
|
-
*/
|
|
18
|
-
private _calculateSurfaceDistance;
|
|
19
|
-
/**
|
|
20
|
-
* 计算细分后的,每一小段的笛卡尔坐标距离(也就是大地坐标系距离)
|
|
21
|
-
* @param startPoint -每一段线段起点
|
|
22
|
-
* @param endPoint -每一段线段终点
|
|
23
|
-
* @returns 表面距离
|
|
24
|
-
*/
|
|
25
|
-
private _calculateDetailSurfaceLength;
|
|
26
|
-
/**
|
|
27
|
-
* 获取线段上距起点一定距离出的线上点坐标(屏幕坐标)
|
|
28
|
-
* @param startPosition -线段起点(屏幕坐标)
|
|
29
|
-
* @param endPosition -线段终点(屏幕坐标)
|
|
30
|
-
* @param interval -距起点距离
|
|
31
|
-
* @returns -结果坐标(屏幕坐标)
|
|
32
|
-
*/
|
|
33
|
-
private _findWindowPositionByPixelInterval;
|
|
34
|
-
getDistance(pos1: Cartesian3, pos2: Cartesian3): number;
|
|
35
|
-
start(style?: PolylineGraphics.ConstructorOptions): void;
|
|
36
|
-
}
|
|
37
|
-
export default DistanceSurfaceMeasure;
|
|
@@ -1,122 +0,0 @@
|
|
|
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 _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
6
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
7
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
8
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
9
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
10
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
11
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
12
|
-
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; }
|
|
13
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
14
|
-
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); }
|
|
15
|
-
import { Cartesian2, Cartographic, EllipsoidGeodesic, SceneTransforms } from 'deeptwins-cesium';
|
|
16
|
-
import DistanceMeasure from "./DistanceMeasure";
|
|
17
|
-
import { pickCartesian3 } from "./utils";
|
|
18
|
-
/**
|
|
19
|
-
* 贴地距离测量类
|
|
20
|
-
*/
|
|
21
|
-
var DistanceSurfaceMeasure = /*#__PURE__*/function (_DistanceMeasure) {
|
|
22
|
-
_inherits(DistanceSurfaceMeasure, _DistanceMeasure);
|
|
23
|
-
var _super = _createSuper(DistanceSurfaceMeasure);
|
|
24
|
-
function DistanceSurfaceMeasure(viewer) {
|
|
25
|
-
var _options$splitNum;
|
|
26
|
-
var _this;
|
|
27
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
28
|
-
_classCallCheck(this, DistanceSurfaceMeasure);
|
|
29
|
-
_this = _super.call(this, viewer, options);
|
|
30
|
-
_defineProperty(_assertThisInitialized(_this), "_splitNum", void 0);
|
|
31
|
-
_this._splitNum = (_options$splitNum = options.splitNum) !== null && _options$splitNum !== void 0 ? _options$splitNum : 50;
|
|
32
|
-
return _this;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* 计算线段的表面距离
|
|
36
|
-
* @param startPoint -线段起点的屏幕坐标
|
|
37
|
-
* @param endPoint -线段终点的屏幕坐标
|
|
38
|
-
* @returns 表面距离
|
|
39
|
-
*/
|
|
40
|
-
_createClass(DistanceSurfaceMeasure, [{
|
|
41
|
-
key: "_calculateSurfaceDistance",
|
|
42
|
-
value: function _calculateSurfaceDistance(startPoint, endPoint) {
|
|
43
|
-
var resultDistance = 0;
|
|
44
|
-
var sampleWindowPoints = [startPoint];
|
|
45
|
-
var interval = Math.sqrt(Math.pow(endPoint.x - startPoint.x, 2) + (endPoint.y - startPoint.y, 2)) / this._splitNum;
|
|
46
|
-
for (var ii = 1; ii <= this._splitNum; ii += 1) {
|
|
47
|
-
var tempPositon = this._findWindowPositionByPixelInterval(startPoint, endPoint, ii * interval);
|
|
48
|
-
sampleWindowPoints.push(tempPositon);
|
|
49
|
-
}
|
|
50
|
-
sampleWindowPoints.push(endPoint);
|
|
51
|
-
for (var jj = 0; jj < sampleWindowPoints.length - 1; jj += 1) {
|
|
52
|
-
resultDistance += this._calculateDetailSurfaceLength(sampleWindowPoints[jj + 1], sampleWindowPoints[jj]);
|
|
53
|
-
}
|
|
54
|
-
return resultDistance;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* 计算细分后的,每一小段的笛卡尔坐标距离(也就是大地坐标系距离)
|
|
59
|
-
* @param startPoint -每一段线段起点
|
|
60
|
-
* @param endPoint -每一段线段终点
|
|
61
|
-
* @returns 表面距离
|
|
62
|
-
*/
|
|
63
|
-
}, {
|
|
64
|
-
key: "_calculateDetailSurfaceLength",
|
|
65
|
-
value: function _calculateDetailSurfaceLength(startPoint, endPoint) {
|
|
66
|
-
var innerS = 0;
|
|
67
|
-
var surfaceStartCartesian3 = pickCartesian3(this._viewer, startPoint);
|
|
68
|
-
var surfaceEndCartesian3 = pickCartesian3(this._viewer, endPoint);
|
|
69
|
-
if (surfaceStartCartesian3 && surfaceEndCartesian3) {
|
|
70
|
-
var cartographicStart = Cartographic.fromCartesian(surfaceStartCartesian3);
|
|
71
|
-
var cartographicEnd = Cartographic.fromCartesian(surfaceEndCartesian3);
|
|
72
|
-
var geoD = new EllipsoidGeodesic();
|
|
73
|
-
geoD.setEndPoints(cartographicStart, cartographicEnd);
|
|
74
|
-
innerS = geoD.surfaceDistance;
|
|
75
|
-
innerS = Math.sqrt(Math.pow(innerS, 2) + Math.pow(cartographicStart.height - cartographicEnd.height, 2));
|
|
76
|
-
}
|
|
77
|
-
return innerS;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* 获取线段上距起点一定距离出的线上点坐标(屏幕坐标)
|
|
82
|
-
* @param startPosition -线段起点(屏幕坐标)
|
|
83
|
-
* @param endPosition -线段终点(屏幕坐标)
|
|
84
|
-
* @param interval -距起点距离
|
|
85
|
-
* @returns -结果坐标(屏幕坐标)
|
|
86
|
-
*/
|
|
87
|
-
}, {
|
|
88
|
-
key: "_findWindowPositionByPixelInterval",
|
|
89
|
-
value: function _findWindowPositionByPixelInterval(startPosition, endPosition, interval) {
|
|
90
|
-
var result = new Cartesian2(0, 0);
|
|
91
|
-
var length = Math.sqrt(Math.pow(endPosition.x - startPosition.x, 2) + Math.pow(endPosition.y - startPosition.y, 2));
|
|
92
|
-
if (length < interval) {
|
|
93
|
-
return result;
|
|
94
|
-
} else {
|
|
95
|
-
var x = interval / length * (endPosition.x - startPosition.x) + startPosition.x;
|
|
96
|
-
//alert(interval/length)
|
|
97
|
-
var y = interval / length * (endPosition.y - startPosition.y) + startPosition.y;
|
|
98
|
-
result.x = x;
|
|
99
|
-
result.y = y;
|
|
100
|
-
}
|
|
101
|
-
return result;
|
|
102
|
-
}
|
|
103
|
-
}, {
|
|
104
|
-
key: "getDistance",
|
|
105
|
-
value: function getDistance(pos1, pos2) {
|
|
106
|
-
var start = SceneTransforms.worldToWindowCoordinates(this._viewer.scene, pos1);
|
|
107
|
-
var end = SceneTransforms.worldToWindowCoordinates(this._viewer.scene, pos2);
|
|
108
|
-
return this._calculateSurfaceDistance(start, end);
|
|
109
|
-
}
|
|
110
|
-
}, {
|
|
111
|
-
key: "start",
|
|
112
|
-
value: function start() {
|
|
113
|
-
var style = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
114
|
-
this._start('polyline', {
|
|
115
|
-
clampToGround: true,
|
|
116
|
-
style: style
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
}]);
|
|
120
|
-
return DistanceSurfaceMeasure;
|
|
121
|
-
}(DistanceMeasure);
|
|
122
|
-
export default DistanceSurfaceMeasure;
|