@vtx/cs-map 1.0.64 → 1.0.65
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/lib/_util/layer.js +49 -70
- package/lib/_util/layer.js.map +1 -1
- package/lib/map/Popup.js +5 -2
- package/lib/map/Popup.js.map +1 -1
- package/lib/map/hooks/useGetMapFeatureInfoByText.js +1 -1
- package/lib/map/hooks/useGetMapFeatureInfoByText.js.map +1 -1
- package/lib/tools/base-map-switch/index.js +2 -2
- package/lib/tools/base-map-switch/index.js.map +1 -1
- package/lib/tools/components/Icon/index.js +31 -0
- package/lib/tools/components/Icon/index.js.map +1 -0
- package/lib/tools/components/Icon/svg.js +81 -0
- package/lib/tools/components/Icon/svg.js.map +1 -0
- package/lib/tools/components/Modal/index.css +42 -0
- package/lib/tools/components/Modal/index.js +40 -0
- package/lib/tools/components/Modal/index.js.map +1 -0
- package/lib/tools/components/Modal/index.less +33 -0
- package/lib/tools/{tools-item → components/item-wrap}/index.js +6 -6
- package/lib/tools/components/item-wrap/index.js.map +1 -0
- package/lib/tools/components/tool-Item/index.css +30 -0
- package/lib/tools/components/tool-Item/index.js +28 -0
- package/lib/tools/components/tool-Item/index.js.map +1 -0
- package/lib/tools/components/tool-Item/index.less +27 -0
- package/lib/tools/dimension-switch/index.js +2 -2
- package/lib/tools/dimension-switch/index.js.map +1 -1
- package/lib/tools/index.js +9 -3
- package/lib/tools/index.js.map +1 -1
- package/lib/tools/layer-control/index.js +2 -2
- package/lib/tools/layer-control/index.js.map +1 -1
- package/lib/tools/layer-control-popover/index.js +4 -5
- package/lib/tools/layer-control-popover/index.js.map +1 -1
- package/lib/tools/map-search/index.js +5 -5
- package/lib/tools/map-search/index.js.map +1 -1
- package/lib/tools/style/index.css +10 -5
- package/lib/tools/style/index.less +282 -276
- package/lib/tools/tool-box/Measure/Area/index.js +16 -0
- package/lib/tools/tool-box/Measure/Area/index.js.map +1 -0
- package/lib/tools/tool-box/Measure/Distance/index.js +16 -0
- package/lib/tools/tool-box/Measure/Distance/index.js.map +1 -0
- package/lib/tools/tool-box/Measure/Height/index.js +16 -0
- package/lib/tools/tool-box/Measure/Height/index.js.map +1 -0
- package/lib/tools/tool-box/Measure/Measure.js +466 -0
- package/lib/tools/tool-box/Measure/Measure.js.map +1 -0
- package/lib/tools/tool-box/Measure/index.js +63 -0
- package/lib/tools/tool-box/Measure/index.js.map +1 -0
- package/lib/tools/tool-box/index.js +109 -0
- package/lib/tools/tool-box/index.js.map +1 -0
- package/package.json +1 -1
- package/lib/tools/tools-item/index.js.map +0 -1
|
@@ -0,0 +1,466 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Measure = void 0;
|
|
7
|
+
var _cesium = require("cesium");
|
|
8
|
+
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); }
|
|
9
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
10
|
+
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); } }
|
|
11
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
12
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
13
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
14
|
+
/**
|
|
15
|
+
* 测量
|
|
16
|
+
*/
|
|
17
|
+
var Measure = exports.Measure = /*#__PURE__*/function () {
|
|
18
|
+
function Measure(viewer) {
|
|
19
|
+
_classCallCheck(this, Measure);
|
|
20
|
+
this.viewer = viewer;
|
|
21
|
+
this.entityCollection = [];
|
|
22
|
+
this.viewer.scene.globe.depthTestAgainstTerrain = true;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// var this.entityCollection = [];
|
|
26
|
+
_createClass(Measure, [{
|
|
27
|
+
key: "getCollection",
|
|
28
|
+
value: function getCollection() {
|
|
29
|
+
return this.entityCollection;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* 清除
|
|
34
|
+
*/
|
|
35
|
+
}, {
|
|
36
|
+
key: "destroy",
|
|
37
|
+
value: function destroy(callback) {
|
|
38
|
+
for (var i = 0; i < this.entityCollection.length; i++) {
|
|
39
|
+
this.viewer.entities.remove(this.entityCollection[i]);
|
|
40
|
+
}
|
|
41
|
+
this.viewer.screenSpaceEventHandler.removeInputAction(_cesium.ScreenSpaceEventType.LEFT_CLICK);
|
|
42
|
+
this.viewer.screenSpaceEventHandler.removeInputAction(_cesium.ScreenSpaceEventType.MOUSE_MOVE);
|
|
43
|
+
this.viewer.screenSpaceEventHandler.removeInputAction(_cesium.ScreenSpaceEventType.RIGHT_CLICK);
|
|
44
|
+
this.entityCollection = [];
|
|
45
|
+
if (callback) {
|
|
46
|
+
callback();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* 测距
|
|
52
|
+
*/
|
|
53
|
+
}, {
|
|
54
|
+
key: "measurePolyLine",
|
|
55
|
+
value: function measurePolyLine(callback) {
|
|
56
|
+
var _this = this;
|
|
57
|
+
var positions = [];
|
|
58
|
+
var labelEntity = null; // 标签实体
|
|
59
|
+
|
|
60
|
+
// 注册鼠标左击事件
|
|
61
|
+
this.viewer.screenSpaceEventHandler.setInputAction(function (clickEvent) {
|
|
62
|
+
var cartesian = _this.viewer.scene.pickPosition(clickEvent.position); // 坐标
|
|
63
|
+
// var cartesian = this.viewer.scene.globe.pick(this.viewer.camera.getPickRay(clickEvent.position), this.viewer.scene);
|
|
64
|
+
// 存储第一个点
|
|
65
|
+
if (!cartesian) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
if (positions.length == 0) {
|
|
69
|
+
positions.push(cartesian.clone());
|
|
70
|
+
_this.addPoint(cartesian);
|
|
71
|
+
|
|
72
|
+
// 注册鼠标移动事件
|
|
73
|
+
_this.viewer.screenSpaceEventHandler.setInputAction(function (moveEvent) {
|
|
74
|
+
var movePosition = _this.viewer.scene.pickPosition(moveEvent.endPosition); // 鼠标移动的点
|
|
75
|
+
// var movePosition = this.viewer.scene.globe.pick(this.viewer.camera.getPickRay(moveEvent.endPosition), this.viewer.scene);
|
|
76
|
+
|
|
77
|
+
if (!movePosition) {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
if (positions.length == 2) {
|
|
81
|
+
positions.pop();
|
|
82
|
+
positions.push(movePosition);
|
|
83
|
+
|
|
84
|
+
// 绘制label
|
|
85
|
+
if (labelEntity) {
|
|
86
|
+
_this.viewer.entities.remove(labelEntity);
|
|
87
|
+
_this.entityCollection.splice(_this.entityCollection.indexOf(labelEntity), 1);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// 计算中点
|
|
91
|
+
var centerPoint = _cesium.Cartesian3.midpoint(positions[0], positions[1], new _cesium.Cartesian3());
|
|
92
|
+
// 计算距离
|
|
93
|
+
var lengthText = '距离:' + _this.getLengthText(positions[0], positions[1]);
|
|
94
|
+
labelEntity = _this.addLabel(centerPoint, lengthText);
|
|
95
|
+
_this.entityCollection.push(labelEntity);
|
|
96
|
+
} else {
|
|
97
|
+
positions.push(movePosition);
|
|
98
|
+
|
|
99
|
+
// 绘制线
|
|
100
|
+
_this.addLine(positions);
|
|
101
|
+
}
|
|
102
|
+
}, _cesium.ScreenSpaceEventType.MOUSE_MOVE);
|
|
103
|
+
} else {
|
|
104
|
+
// 存储第二个点
|
|
105
|
+
positions.pop();
|
|
106
|
+
positions.push(cartesian);
|
|
107
|
+
_this.addPoint(cartesian);
|
|
108
|
+
_this.addLine(positions);
|
|
109
|
+
_this.viewer.screenSpaceEventHandler.removeInputAction(_cesium.ScreenSpaceEventType.LEFT_CLICK);
|
|
110
|
+
_this.viewer.screenSpaceEventHandler.removeInputAction(_cesium.ScreenSpaceEventType.MOUSE_MOVE);
|
|
111
|
+
if (callback) {
|
|
112
|
+
callback();
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}, _cesium.ScreenSpaceEventType.LEFT_CLICK);
|
|
116
|
+
// this.viewer.screenSpaceEventHandler.setInputAction((clickEvent) => {
|
|
117
|
+
|
|
118
|
+
// this.viewer.screenSpaceEventHandler.removeInputAction(ScreenSpaceEventType.RIGHT_CLICK);
|
|
119
|
+
// }, ScreenSpaceEventType.RIGHT_CLICK);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* 测面积
|
|
124
|
+
*/
|
|
125
|
+
}, {
|
|
126
|
+
key: "measurePolygon",
|
|
127
|
+
value: function measurePolygon(callback) {
|
|
128
|
+
var _this2 = this;
|
|
129
|
+
var positions = [];
|
|
130
|
+
var clickStatus = false;
|
|
131
|
+
var labelEntity = null;
|
|
132
|
+
this.viewer.scene.globe.depthTestAgainstTerrain = false;
|
|
133
|
+
this.viewer.screenSpaceEventHandler.setInputAction(function (clickEvent) {
|
|
134
|
+
clickStatus = true;
|
|
135
|
+
// var cartesian = this.viewer.scene.pickPosition(clickEvent.position);
|
|
136
|
+
var cartesian = _this2.viewer.scene.globe.pick(_this2.viewer.camera.getPickRay(clickEvent.position), _this2.viewer.scene);
|
|
137
|
+
// console.log(cartesian);
|
|
138
|
+
|
|
139
|
+
if (!cartesian) {
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
if (positions.length == 0) {
|
|
143
|
+
positions.push(cartesian.clone()); //鼠标左击 添加第1个点
|
|
144
|
+
_this2.addPoint(cartesian);
|
|
145
|
+
_this2.viewer.screenSpaceEventHandler.setInputAction(function (moveEvent) {
|
|
146
|
+
// var movePosition = this.viewer.scene.pickPosition(moveEvent.endPosition);
|
|
147
|
+
var movePosition = _this2.viewer.scene.globe.pick(_this2.viewer.camera.getPickRay(moveEvent.endPosition), _this2.viewer.scene);
|
|
148
|
+
// console.log(movePosition);
|
|
149
|
+
if (!movePosition) {
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
if (positions.length == 1) {
|
|
153
|
+
positions.push(movePosition);
|
|
154
|
+
_this2.addLine(positions);
|
|
155
|
+
} else {
|
|
156
|
+
if (clickStatus) {
|
|
157
|
+
positions.push(movePosition);
|
|
158
|
+
} else {
|
|
159
|
+
positions.pop();
|
|
160
|
+
positions.push(movePosition);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
if (positions.length >= 3) {
|
|
164
|
+
// 绘制label
|
|
165
|
+
if (labelEntity) {
|
|
166
|
+
_this2.viewer.entities.remove(labelEntity);
|
|
167
|
+
_this2.entityCollection.splice(_this2.entityCollection.indexOf(labelEntity), 1);
|
|
168
|
+
}
|
|
169
|
+
var text = '面积:' + _this2.getArea(positions);
|
|
170
|
+
var centerPoint = _this2.getCenterOfGravityPoint(positions);
|
|
171
|
+
labelEntity = _this2.addLabel(centerPoint, text);
|
|
172
|
+
_this2.entityCollection.push(labelEntity);
|
|
173
|
+
}
|
|
174
|
+
clickStatus = false;
|
|
175
|
+
}, _cesium.ScreenSpaceEventType.MOUSE_MOVE);
|
|
176
|
+
} else if (positions.length == 2) {
|
|
177
|
+
if (!cartesian) {
|
|
178
|
+
return false;
|
|
179
|
+
}
|
|
180
|
+
positions.pop();
|
|
181
|
+
positions.push(cartesian.clone()); // 鼠标左击 添加第2个点
|
|
182
|
+
|
|
183
|
+
_this2.addPoint(cartesian);
|
|
184
|
+
_this2.addPolyGon(positions);
|
|
185
|
+
|
|
186
|
+
// 右击结束
|
|
187
|
+
_this2.viewer.screenSpaceEventHandler.setInputAction(function (clickEvent) {
|
|
188
|
+
// var clickPosition = this.viewer.scene.pickPosition(clickEvent.position);
|
|
189
|
+
var clickPosition = _this2.viewer.scene.globe.pick(_this2.viewer.camera.getPickRay(clickEvent.position), _this2.viewer.scene);
|
|
190
|
+
// console.log(clickPosition);
|
|
191
|
+
if (!clickPosition) {
|
|
192
|
+
return false;
|
|
193
|
+
}
|
|
194
|
+
positions.pop();
|
|
195
|
+
positions.push(clickPosition);
|
|
196
|
+
positions.push(positions[0]); // 闭合
|
|
197
|
+
_this2.addPoint(clickPosition);
|
|
198
|
+
_this2.viewer.screenSpaceEventHandler.removeInputAction(_cesium.ScreenSpaceEventType.LEFT_CLICK);
|
|
199
|
+
_this2.viewer.screenSpaceEventHandler.removeInputAction(_cesium.ScreenSpaceEventType.MOUSE_MOVE);
|
|
200
|
+
_this2.viewer.screenSpaceEventHandler.removeInputAction(_cesium.ScreenSpaceEventType.RIGHT_CLICK);
|
|
201
|
+
if (callback) {
|
|
202
|
+
callback();
|
|
203
|
+
}
|
|
204
|
+
}, _cesium.ScreenSpaceEventType.RIGHT_CLICK);
|
|
205
|
+
} else if (positions.length >= 3) {
|
|
206
|
+
if (!cartesian) {
|
|
207
|
+
return false;
|
|
208
|
+
}
|
|
209
|
+
positions.pop();
|
|
210
|
+
positions.push(cartesian.clone()); // 鼠标左击 添加第3个点
|
|
211
|
+
_this2.addPoint(cartesian);
|
|
212
|
+
}
|
|
213
|
+
}, _cesium.ScreenSpaceEventType.LEFT_CLICK);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* 测高
|
|
218
|
+
*/
|
|
219
|
+
}, {
|
|
220
|
+
key: "measureHeight",
|
|
221
|
+
value: function measureHeight(callback) {
|
|
222
|
+
var _this3 = this;
|
|
223
|
+
var positions = [];
|
|
224
|
+
var labelEntity_1 = null; // 标签实体
|
|
225
|
+
var labelEntity_2 = null; // 标签实体
|
|
226
|
+
var labelEntity_3 = null; // 标签实体
|
|
227
|
+
|
|
228
|
+
// 注册鼠标左击事件
|
|
229
|
+
this.viewer.screenSpaceEventHandler.setInputAction(function (clickEvent) {
|
|
230
|
+
var cartesian = _this3.viewer.scene.pickPosition(clickEvent.position); // 坐标
|
|
231
|
+
//var cartesian = this.viewer.scene.globe.pick(this.viewer.camera.getPickRay(clickEvent.position), this.viewer.scene);
|
|
232
|
+
|
|
233
|
+
// 存储第一个点
|
|
234
|
+
|
|
235
|
+
if (positions.length == 0) {
|
|
236
|
+
if (!cartesian) {
|
|
237
|
+
return false;
|
|
238
|
+
}
|
|
239
|
+
positions.push(cartesian.clone());
|
|
240
|
+
_this3.addPoint(cartesian);
|
|
241
|
+
|
|
242
|
+
// 注册鼠标移动事件
|
|
243
|
+
_this3.viewer.screenSpaceEventHandler.setInputAction(function (moveEvent) {
|
|
244
|
+
var movePosition = _this3.viewer.scene.pickPosition(moveEvent.endPosition); // 鼠标移动的点
|
|
245
|
+
//var movePosition = this.viewer.scene.globe.pick(this.viewer.camera.getPickRay(moveEvent.endPosition), this.viewer.scene);
|
|
246
|
+
if (!movePosition) {
|
|
247
|
+
return false;
|
|
248
|
+
}
|
|
249
|
+
if (positions.length >= 2) {
|
|
250
|
+
positions.pop();
|
|
251
|
+
positions.pop();
|
|
252
|
+
positions.pop();
|
|
253
|
+
var cartographic = _cesium.Cartographic.fromCartesian(movePosition);
|
|
254
|
+
var height = _cesium.Cartographic.fromCartesian(positions[0]).height;
|
|
255
|
+
var verticalPoint = _cesium.Cartesian3.fromDegrees(Math.toDegrees(cartographic.longitude), Math.toDegrees(cartographic.latitude), height);
|
|
256
|
+
positions.push(verticalPoint);
|
|
257
|
+
positions.push(movePosition);
|
|
258
|
+
positions.push(positions[0]);
|
|
259
|
+
|
|
260
|
+
// 绘制label
|
|
261
|
+
if (labelEntity_1) {
|
|
262
|
+
_this3.viewer.entities.remove(labelEntity_1);
|
|
263
|
+
_this3.entityCollection.splice(_this3.entityCollection.indexOf(labelEntity_1), 1);
|
|
264
|
+
_this3.viewer.entities.remove(labelEntity_2);
|
|
265
|
+
_this3.entityCollection.splice(_this3.entityCollection.indexOf(labelEntity_2), 1);
|
|
266
|
+
_this3.viewer.entities.remove(labelEntity_3);
|
|
267
|
+
_this3.entityCollection.splice(_this3.entityCollection.indexOf(labelEntity_3), 1);
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
// 计算中点
|
|
271
|
+
var centerPoint_1 = _cesium.Cartesian3.midpoint(positions[0], positions[1], new _cesium.Cartesian3());
|
|
272
|
+
// 计算距离
|
|
273
|
+
var lengthText_1 = '水平距离:' + _this3.getLengthText(positions[0], positions[1]);
|
|
274
|
+
labelEntity_1 = _this3.addLabel(centerPoint_1, lengthText_1);
|
|
275
|
+
_this3.entityCollection.push(labelEntity_1);
|
|
276
|
+
|
|
277
|
+
// 计算中点
|
|
278
|
+
var centerPoint_2 = _cesium.Cartesian3.midpoint(positions[1], positions[2], new _cesium.Cartesian3());
|
|
279
|
+
// 计算距离
|
|
280
|
+
var lengthText_2 = '垂直距离:' + _this3.getLengthText(positions[1], positions[2]);
|
|
281
|
+
labelEntity_2 = _this3.addLabel(centerPoint_2, lengthText_2);
|
|
282
|
+
_this3.entityCollection.push(labelEntity_2);
|
|
283
|
+
|
|
284
|
+
// 计算中点
|
|
285
|
+
var centerPoint_3 = _cesium.Cartesian3.midpoint(positions[2], positions[3], new _cesium.Cartesian3());
|
|
286
|
+
// 计算距离
|
|
287
|
+
var lengthText_3 = '直线距离:' + _this3.getLengthText(positions[2], positions[3]);
|
|
288
|
+
labelEntity_3 = _this3.addLabel(centerPoint_3, lengthText_3);
|
|
289
|
+
_this3.entityCollection.push(labelEntity_3);
|
|
290
|
+
} else {
|
|
291
|
+
var _verticalPoint = new _cesium.Cartesian3(movePosition.x, movePosition.y, positions[0].z);
|
|
292
|
+
positions.push(_verticalPoint);
|
|
293
|
+
positions.push(movePosition);
|
|
294
|
+
positions.push(positions[0]);
|
|
295
|
+
// 绘制线
|
|
296
|
+
_this3.addLine(positions);
|
|
297
|
+
}
|
|
298
|
+
}, _cesium.ScreenSpaceEventType.MOUSE_MOVE);
|
|
299
|
+
} else {
|
|
300
|
+
// 存储第二个点
|
|
301
|
+
positions.pop();
|
|
302
|
+
positions.pop();
|
|
303
|
+
positions.pop();
|
|
304
|
+
var cartographic = _cesium.Cartographic.fromCartesian(cartesian);
|
|
305
|
+
var height = _cesium.Cartographic.fromCartesian(positions[0]).height;
|
|
306
|
+
var verticalPoint = _cesium.Cartesian3.fromDegrees(Math.toDegrees(cartographic.longitude), Math.toDegrees(cartographic.latitude), height);
|
|
307
|
+
positions.push(verticalPoint);
|
|
308
|
+
positions.push(cartesian);
|
|
309
|
+
positions.push(positions[0]);
|
|
310
|
+
_this3.addPoint(cartesian);
|
|
311
|
+
_this3.viewer.screenSpaceEventHandler.removeInputAction(_cesium.ScreenSpaceEventType.LEFT_CLICK);
|
|
312
|
+
_this3.viewer.screenSpaceEventHandler.removeInputAction(_cesium.ScreenSpaceEventType.MOUSE_MOVE);
|
|
313
|
+
if (callback) {
|
|
314
|
+
callback();
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
}, _cesium.ScreenSpaceEventType.LEFT_CLICK);
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
/**
|
|
321
|
+
* 添加点
|
|
322
|
+
* @param position
|
|
323
|
+
*/
|
|
324
|
+
}, {
|
|
325
|
+
key: "addPoint",
|
|
326
|
+
value: function addPoint(position) {
|
|
327
|
+
this.entityCollection.push(this.viewer.entities.add(new _cesium.Entity({
|
|
328
|
+
position: position,
|
|
329
|
+
point: {
|
|
330
|
+
color: _cesium.Color.BLUE,
|
|
331
|
+
pixelSize: 5,
|
|
332
|
+
heightReference: _cesium.HeightReference.NONE
|
|
333
|
+
}
|
|
334
|
+
})));
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
/**
|
|
338
|
+
* 添加线
|
|
339
|
+
* @param positions
|
|
340
|
+
*/
|
|
341
|
+
}, {
|
|
342
|
+
key: "addLine",
|
|
343
|
+
value: function addLine(positions) {
|
|
344
|
+
var dynamicPositions = new _cesium.CallbackProperty(function () {
|
|
345
|
+
return positions;
|
|
346
|
+
}, false);
|
|
347
|
+
this.entityCollection.push(this.viewer.entities.add(new _cesium.Entity({
|
|
348
|
+
polyline: {
|
|
349
|
+
positions: dynamicPositions,
|
|
350
|
+
width: 2,
|
|
351
|
+
arcType: _cesium.ArcType.RHUMB,
|
|
352
|
+
clampToGround: true,
|
|
353
|
+
material: _cesium.Color.RED,
|
|
354
|
+
//获取或设置折线的表面外观
|
|
355
|
+
heightReference: _cesium.HeightReference.RELATIVE_TO_GROUND
|
|
356
|
+
}
|
|
357
|
+
})));
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
/**
|
|
361
|
+
* 添加面
|
|
362
|
+
* @param positions
|
|
363
|
+
*/
|
|
364
|
+
}, {
|
|
365
|
+
key: "addPolyGon",
|
|
366
|
+
value: function addPolyGon(positions) {
|
|
367
|
+
var dynamicPositions = new _cesium.CallbackProperty(function () {
|
|
368
|
+
return new _cesium.PolygonHierarchy(positions);
|
|
369
|
+
}, false);
|
|
370
|
+
this.entityCollection.push(this.viewer.entities.add(new _cesium.Entity({
|
|
371
|
+
polygon: {
|
|
372
|
+
hierarchy: dynamicPositions,
|
|
373
|
+
material: _cesium.Color.RED.withAlpha(0.6),
|
|
374
|
+
classificationType: _cesium.ClassificationType.BOTH // 贴地表和贴模型,如果设置了,这不能使用挤出高度
|
|
375
|
+
}
|
|
376
|
+
})));
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
/**
|
|
380
|
+
* 添加标签
|
|
381
|
+
* @param position
|
|
382
|
+
* @param text
|
|
383
|
+
*/
|
|
384
|
+
}, {
|
|
385
|
+
key: "addLabel",
|
|
386
|
+
value: function addLabel(centerPoint, text) {
|
|
387
|
+
return this.viewer.entities.add(new _cesium.Entity({
|
|
388
|
+
position: centerPoint,
|
|
389
|
+
label: {
|
|
390
|
+
text: text,
|
|
391
|
+
font: '14px sans-serif',
|
|
392
|
+
style: _cesium.LabelStyle.FILL_AND_OUTLINE,
|
|
393
|
+
//FILL FILL_AND_OUTLINE OUTLINE
|
|
394
|
+
fillColor: _cesium.Color.YELLOW,
|
|
395
|
+
showBackground: true,
|
|
396
|
+
//指定标签后面背景的可见性
|
|
397
|
+
backgroundColor: new _cesium.Color(0.165, 0.165, 0.165, 0.8),
|
|
398
|
+
// 背景颜色
|
|
399
|
+
backgroundPadding: new _cesium.Cartesian2(6, 6),
|
|
400
|
+
//指定以像素为单位的水平和垂直背景填充padding
|
|
401
|
+
pixelOffset: new _cesium.Cartesian2(0, -25),
|
|
402
|
+
disableDepthTestDistance: Number.POSITIVE_INFINITY
|
|
403
|
+
}
|
|
404
|
+
}));
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
/**
|
|
408
|
+
* 计算两点距离
|
|
409
|
+
* @param firstPoint
|
|
410
|
+
* @param secondPoint
|
|
411
|
+
*/
|
|
412
|
+
}, {
|
|
413
|
+
key: "getLengthText",
|
|
414
|
+
value: function getLengthText(firstPoint, secondPoint) {
|
|
415
|
+
// 计算距离
|
|
416
|
+
var length = _cesium.Cartesian3.distance(firstPoint, secondPoint);
|
|
417
|
+
if (length > 1000) {
|
|
418
|
+
length = (length / 1000).toFixed(2) + ' 公里';
|
|
419
|
+
} else {
|
|
420
|
+
length = length.toFixed(2) + ' 米';
|
|
421
|
+
}
|
|
422
|
+
return length;
|
|
423
|
+
}
|
|
424
|
+
}, {
|
|
425
|
+
key: "getArea",
|
|
426
|
+
value: function getArea(points) {
|
|
427
|
+
var _this4 = this;
|
|
428
|
+
var ps = points.map(function (point) {
|
|
429
|
+
var cartographic = _cesium.Ellipsoid.WGS84.cartesianToCartographic(point);
|
|
430
|
+
var height = _this4.viewer.scene.globe.getHeight(cartographic);
|
|
431
|
+
return _cesium.Cartesian3.fromDegrees(cartographic.longitude / Math.PI * 180, cartographic.latitude / Math.PI * 180, height);
|
|
432
|
+
});
|
|
433
|
+
var s = 0;
|
|
434
|
+
for (var i = 0; i < ps.length; i++) {
|
|
435
|
+
var p1 = ps[i];
|
|
436
|
+
var p2 = void 0;
|
|
437
|
+
if (i < ps.length - 1) p2 = ps[i + 1];else p2 = ps[0];
|
|
438
|
+
s += p1.x * p2.y - p2.x * p1.y;
|
|
439
|
+
}
|
|
440
|
+
var res;
|
|
441
|
+
if (s < 1000000) {
|
|
442
|
+
res = Math.abs(s).toFixed(4) + ' 平方米';
|
|
443
|
+
} else {
|
|
444
|
+
res = Math.abs((s / 1000000.0).toFixed(4)) + ' 平方公里';
|
|
445
|
+
}
|
|
446
|
+
return res;
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
/**
|
|
450
|
+
* 计算多边形的中心(简单的处理)
|
|
451
|
+
* @param mPoints
|
|
452
|
+
* @returns {*[]}
|
|
453
|
+
*/
|
|
454
|
+
}, {
|
|
455
|
+
key: "getCenterOfGravityPoint",
|
|
456
|
+
value: function getCenterOfGravityPoint(mPoints) {
|
|
457
|
+
var centerPoint = mPoints[0];
|
|
458
|
+
for (var i = 1; i < mPoints.length; i++) {
|
|
459
|
+
centerPoint = _cesium.Cartesian3.midpoint(centerPoint, mPoints[i], new _cesium.Cartesian3());
|
|
460
|
+
}
|
|
461
|
+
return centerPoint;
|
|
462
|
+
}
|
|
463
|
+
}]);
|
|
464
|
+
return Measure;
|
|
465
|
+
}();
|
|
466
|
+
//# sourceMappingURL=Measure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Measure.js","names":["_cesium","require","_typeof","o","Symbol","iterator","constructor","prototype","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","_createClass","protoProps","staticProps","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","call","Number","Measure","exports","viewer","entityCollection","scene","globe","depthTestAgainstTerrain","value","getCollection","destroy","callback","entities","remove","screenSpaceEventHandler","removeInputAction","ScreenSpaceEventType","LEFT_CLICK","MOUSE_MOVE","RIGHT_CLICK","measurePolyLine","_this","positions","labelEntity","setInputAction","clickEvent","cartesian","pickPosition","position","push","clone","addPoint","moveEvent","movePosition","endPosition","pop","splice","indexOf","centerPoint","Cartesian3","midpoint","lengthText","getLengthText","addLabel","addLine","measurePolygon","_this2","clickStatus","pick","camera","getPickRay","text","getArea","getCenterOfGravityPoint","addPolyGon","clickPosition","measureHeight","_this3","labelEntity_1","labelEntity_2","labelEntity_3","cartographic","Cartographic","fromCartesian","height","verticalPoint","fromDegrees","Math","toDegrees","longitude","latitude","centerPoint_1","lengthText_1","centerPoint_2","lengthText_2","centerPoint_3","lengthText_3","x","y","z","add","Entity","point","color","Color","BLUE","pixelSize","heightReference","HeightReference","NONE","dynamicPositions","CallbackProperty","polyline","width","arcType","ArcType","RHUMB","clampToGround","material","RED","RELATIVE_TO_GROUND","PolygonHierarchy","polygon","hierarchy","withAlpha","classificationType","ClassificationType","BOTH","label","font","style","LabelStyle","FILL_AND_OUTLINE","fillColor","YELLOW","showBackground","backgroundColor","backgroundPadding","Cartesian2","pixelOffset","disableDepthTestDistance","POSITIVE_INFINITY","firstPoint","secondPoint","distance","toFixed","points","_this4","ps","map","Ellipsoid","WGS84","cartesianToCartographic","getHeight","PI","s","p1","p2","abs","mPoints"],"sources":["tools/tool-box/Measure/Measure.js"],"sourcesContent":["import {\n ArcType,\n CallbackProperty,\n Cartesian2,\n Cartesian3,\n Cartographic,\n ClassificationType,\n Color,\n Ellipsoid,\n Entity,\n HeightReference,\n LabelStyle,\n PolygonHierarchy,\n ScreenSpaceEventType,\n} from 'cesium';\n\n/**\n * 测量\n */\nexport class Measure {\n constructor(viewer) {\n this.viewer = viewer;\n this.entityCollection = [];\n this.viewer.scene.globe.depthTestAgainstTerrain = true;\n }\n\n // var this.entityCollection = [];\n\n getCollection() {\n return this.entityCollection;\n }\n\n /**\n * 清除\n */\n destroy(callback) {\n for (let i = 0; i < this.entityCollection.length; i++) {\n this.viewer.entities.remove(this.entityCollection[i]);\n }\n this.viewer.screenSpaceEventHandler.removeInputAction(ScreenSpaceEventType.LEFT_CLICK);\n this.viewer.screenSpaceEventHandler.removeInputAction(ScreenSpaceEventType.MOUSE_MOVE);\n this.viewer.screenSpaceEventHandler.removeInputAction(ScreenSpaceEventType.RIGHT_CLICK);\n this.entityCollection = [];\n\n if (callback) {\n callback();\n }\n }\n\n /**\n * 测距\n */\n measurePolyLine(callback) {\n let positions = [];\n let labelEntity = null; // 标签实体\n\n // 注册鼠标左击事件\n this.viewer.screenSpaceEventHandler.setInputAction(clickEvent => {\n let cartesian = this.viewer.scene.pickPosition(clickEvent.position); // 坐标\n // var cartesian = this.viewer.scene.globe.pick(this.viewer.camera.getPickRay(clickEvent.position), this.viewer.scene);\n // 存储第一个点\n if (!cartesian) {\n return false;\n }\n if (positions.length == 0) {\n positions.push(cartesian.clone());\n\n this.addPoint(cartesian);\n\n // 注册鼠标移动事件\n this.viewer.screenSpaceEventHandler.setInputAction(moveEvent => {\n let movePosition = this.viewer.scene.pickPosition(moveEvent.endPosition); // 鼠标移动的点\n // var movePosition = this.viewer.scene.globe.pick(this.viewer.camera.getPickRay(moveEvent.endPosition), this.viewer.scene);\n\n if (!movePosition) {\n return false;\n }\n if (positions.length == 2) {\n positions.pop();\n positions.push(movePosition);\n\n // 绘制label\n if (labelEntity) {\n this.viewer.entities.remove(labelEntity);\n this.entityCollection.splice(\n this.entityCollection.indexOf(labelEntity),\n 1,\n );\n }\n\n // 计算中点\n let centerPoint = Cartesian3.midpoint(\n positions[0],\n positions[1],\n new Cartesian3(),\n );\n // 计算距离\n let lengthText = '距离:' + this.getLengthText(positions[0], positions[1]);\n\n labelEntity = this.addLabel(centerPoint, lengthText);\n this.entityCollection.push(labelEntity);\n } else {\n positions.push(movePosition);\n\n // 绘制线\n this.addLine(positions);\n }\n }, ScreenSpaceEventType.MOUSE_MOVE);\n } else {\n // 存储第二个点\n positions.pop();\n positions.push(cartesian);\n this.addPoint(cartesian);\n this.addLine(positions);\n this.viewer.screenSpaceEventHandler.removeInputAction(\n ScreenSpaceEventType.LEFT_CLICK,\n );\n this.viewer.screenSpaceEventHandler.removeInputAction(\n ScreenSpaceEventType.MOUSE_MOVE,\n );\n if (callback) {\n callback();\n }\n }\n }, ScreenSpaceEventType.LEFT_CLICK);\n // this.viewer.screenSpaceEventHandler.setInputAction((clickEvent) => {\n\n // this.viewer.screenSpaceEventHandler.removeInputAction(ScreenSpaceEventType.RIGHT_CLICK);\n // }, ScreenSpaceEventType.RIGHT_CLICK);\n }\n\n /**\n * 测面积\n */\n measurePolygon(callback) {\n let positions = [];\n let clickStatus = false;\n let labelEntity = null;\n this.viewer.scene.globe.depthTestAgainstTerrain = false;\n\n this.viewer.screenSpaceEventHandler.setInputAction(clickEvent => {\n clickStatus = true;\n // var cartesian = this.viewer.scene.pickPosition(clickEvent.position);\n let cartesian = this.viewer.scene.globe.pick(\n this.viewer.camera.getPickRay(clickEvent.position),\n this.viewer.scene,\n );\n // console.log(cartesian);\n\n if (!cartesian) {\n return false;\n }\n if (positions.length == 0) {\n positions.push(cartesian.clone()); //鼠标左击 添加第1个点\n this.addPoint(cartesian);\n\n this.viewer.screenSpaceEventHandler.setInputAction(moveEvent => {\n // var movePosition = this.viewer.scene.pickPosition(moveEvent.endPosition);\n let movePosition = this.viewer.scene.globe.pick(\n this.viewer.camera.getPickRay(moveEvent.endPosition),\n this.viewer.scene,\n );\n // console.log(movePosition);\n if (!movePosition) {\n return false;\n }\n if (positions.length == 1) {\n positions.push(movePosition);\n this.addLine(positions);\n } else {\n if (clickStatus) {\n positions.push(movePosition);\n } else {\n positions.pop();\n positions.push(movePosition);\n }\n }\n\n if (positions.length >= 3) {\n // 绘制label\n if (labelEntity) {\n this.viewer.entities.remove(labelEntity);\n this.entityCollection.splice(\n this.entityCollection.indexOf(labelEntity),\n 1,\n );\n }\n\n let text = '面积:' + this.getArea(positions);\n let centerPoint = this.getCenterOfGravityPoint(positions);\n labelEntity = this.addLabel(centerPoint, text);\n\n this.entityCollection.push(labelEntity);\n }\n\n clickStatus = false;\n }, ScreenSpaceEventType.MOUSE_MOVE);\n } else if (positions.length == 2) {\n if (!cartesian) {\n return false;\n }\n positions.pop();\n positions.push(cartesian.clone()); // 鼠标左击 添加第2个点\n\n this.addPoint(cartesian);\n\n this.addPolyGon(positions);\n\n // 右击结束\n this.viewer.screenSpaceEventHandler.setInputAction(clickEvent => {\n // var clickPosition = this.viewer.scene.pickPosition(clickEvent.position);\n let clickPosition = this.viewer.scene.globe.pick(\n this.viewer.camera.getPickRay(clickEvent.position),\n this.viewer.scene,\n );\n // console.log(clickPosition);\n if (!clickPosition) {\n return false;\n }\n positions.pop();\n positions.push(clickPosition);\n positions.push(positions[0]); // 闭合\n this.addPoint(clickPosition);\n\n this.viewer.screenSpaceEventHandler.removeInputAction(\n ScreenSpaceEventType.LEFT_CLICK,\n );\n this.viewer.screenSpaceEventHandler.removeInputAction(\n ScreenSpaceEventType.MOUSE_MOVE,\n );\n this.viewer.screenSpaceEventHandler.removeInputAction(\n ScreenSpaceEventType.RIGHT_CLICK,\n );\n\n if (callback) {\n callback();\n }\n }, ScreenSpaceEventType.RIGHT_CLICK);\n } else if (positions.length >= 3) {\n if (!cartesian) {\n return false;\n }\n positions.pop();\n positions.push(cartesian.clone()); // 鼠标左击 添加第3个点\n this.addPoint(cartesian);\n }\n }, ScreenSpaceEventType.LEFT_CLICK);\n }\n\n /**\n * 测高\n */\n measureHeight(callback) {\n let positions = [];\n let labelEntity_1 = null; // 标签实体\n let labelEntity_2 = null; // 标签实体\n let labelEntity_3 = null; // 标签实体\n\n // 注册鼠标左击事件\n this.viewer.screenSpaceEventHandler.setInputAction(clickEvent => {\n let cartesian = this.viewer.scene.pickPosition(clickEvent.position); // 坐标\n //var cartesian = this.viewer.scene.globe.pick(this.viewer.camera.getPickRay(clickEvent.position), this.viewer.scene);\n\n // 存储第一个点\n\n if (positions.length == 0) {\n if (!cartesian) {\n return false;\n }\n positions.push(cartesian.clone());\n this.addPoint(cartesian);\n\n // 注册鼠标移动事件\n this.viewer.screenSpaceEventHandler.setInputAction(moveEvent => {\n let movePosition = this.viewer.scene.pickPosition(moveEvent.endPosition); // 鼠标移动的点\n //var movePosition = this.viewer.scene.globe.pick(this.viewer.camera.getPickRay(moveEvent.endPosition), this.viewer.scene);\n if (!movePosition) {\n return false;\n }\n if (positions.length >= 2) {\n positions.pop();\n positions.pop();\n positions.pop();\n\n let cartographic = Cartographic.fromCartesian(movePosition);\n let height = Cartographic.fromCartesian(positions[0]).height;\n\n const verticalPoint = Cartesian3.fromDegrees(\n Math.toDegrees(cartographic.longitude),\n Math.toDegrees(cartographic.latitude),\n height,\n );\n positions.push(verticalPoint);\n positions.push(movePosition);\n positions.push(positions[0]);\n\n // 绘制label\n if (labelEntity_1) {\n this.viewer.entities.remove(labelEntity_1);\n this.entityCollection.splice(\n this.entityCollection.indexOf(labelEntity_1),\n 1,\n );\n this.viewer.entities.remove(labelEntity_2);\n this.entityCollection.splice(\n this.entityCollection.indexOf(labelEntity_2),\n 1,\n );\n this.viewer.entities.remove(labelEntity_3);\n this.entityCollection.splice(\n this.entityCollection.indexOf(labelEntity_3),\n 1,\n );\n }\n\n // 计算中点\n let centerPoint_1 = Cartesian3.midpoint(\n positions[0],\n positions[1],\n new Cartesian3(),\n );\n // 计算距离\n let lengthText_1 =\n '水平距离:' + this.getLengthText(positions[0], positions[1]);\n\n labelEntity_1 = this.addLabel(centerPoint_1, lengthText_1);\n this.entityCollection.push(labelEntity_1);\n\n // 计算中点\n let centerPoint_2 = Cartesian3.midpoint(\n positions[1],\n positions[2],\n new Cartesian3(),\n );\n // 计算距离\n let lengthText_2 =\n '垂直距离:' + this.getLengthText(positions[1], positions[2]);\n\n labelEntity_2 = this.addLabel(centerPoint_2, lengthText_2);\n this.entityCollection.push(labelEntity_2);\n\n // 计算中点\n let centerPoint_3 = Cartesian3.midpoint(\n positions[2],\n positions[3],\n new Cartesian3(),\n );\n // 计算距离\n let lengthText_3 =\n '直线距离:' + this.getLengthText(positions[2], positions[3]);\n\n labelEntity_3 = this.addLabel(centerPoint_3, lengthText_3);\n this.entityCollection.push(labelEntity_3);\n } else {\n const verticalPoint = new Cartesian3(\n movePosition.x,\n movePosition.y,\n positions[0].z,\n );\n positions.push(verticalPoint);\n positions.push(movePosition);\n positions.push(positions[0]);\n // 绘制线\n this.addLine(positions);\n }\n }, ScreenSpaceEventType.MOUSE_MOVE);\n } else {\n // 存储第二个点\n positions.pop();\n positions.pop();\n positions.pop();\n let cartographic = Cartographic.fromCartesian(cartesian);\n let height = Cartographic.fromCartesian(positions[0]).height;\n\n let verticalPoint = Cartesian3.fromDegrees(\n Math.toDegrees(cartographic.longitude),\n Math.toDegrees(cartographic.latitude),\n height,\n );\n positions.push(verticalPoint);\n positions.push(cartesian);\n positions.push(positions[0]);\n this.addPoint(cartesian);\n this.viewer.screenSpaceEventHandler.removeInputAction(\n ScreenSpaceEventType.LEFT_CLICK,\n );\n this.viewer.screenSpaceEventHandler.removeInputAction(\n ScreenSpaceEventType.MOUSE_MOVE,\n );\n\n if (callback) {\n callback();\n }\n }\n }, ScreenSpaceEventType.LEFT_CLICK);\n }\n\n /**\n * 添加点\n * @param position\n */\n addPoint(position) {\n this.entityCollection.push(\n this.viewer.entities.add(\n new Entity({\n position: position,\n point: {\n color: Color.BLUE,\n pixelSize: 5,\n heightReference: HeightReference.NONE,\n },\n }),\n ),\n );\n }\n\n /**\n * 添加线\n * @param positions\n */\n addLine(positions) {\n let dynamicPositions = new CallbackProperty(() => {\n return positions;\n }, false);\n this.entityCollection.push(\n this.viewer.entities.add(\n new Entity({\n polyline: {\n positions: dynamicPositions,\n width: 2,\n arcType: ArcType.RHUMB,\n clampToGround: true,\n material: Color.RED, //获取或设置折线的表面外观\n heightReference: HeightReference.RELATIVE_TO_GROUND,\n },\n }),\n ),\n );\n }\n\n /**\n * 添加面\n * @param positions\n */\n addPolyGon(positions) {\n let dynamicPositions = new CallbackProperty(() => {\n return new PolygonHierarchy(positions);\n }, false);\n this.entityCollection.push(\n this.viewer.entities.add(\n new Entity({\n polygon: {\n hierarchy: dynamicPositions,\n material: Color.RED.withAlpha(0.6),\n classificationType: ClassificationType.BOTH, // 贴地表和贴模型,如果设置了,这不能使用挤出高度\n },\n }),\n ),\n );\n }\n\n /**\n * 添加标签\n * @param position\n * @param text\n */\n addLabel(centerPoint, text) {\n return this.viewer.entities.add(\n new Entity({\n position: centerPoint,\n label: {\n text: text,\n font: '14px sans-serif',\n style: LabelStyle.FILL_AND_OUTLINE, //FILL FILL_AND_OUTLINE OUTLINE\n fillColor: Color.YELLOW,\n showBackground: true, //指定标签后面背景的可见性\n backgroundColor: new Color(0.165, 0.165, 0.165, 0.8), // 背景颜色\n backgroundPadding: new Cartesian2(6, 6), //指定以像素为单位的水平和垂直背景填充padding\n pixelOffset: new Cartesian2(0, -25),\n disableDepthTestDistance: Number.POSITIVE_INFINITY,\n },\n }),\n );\n }\n\n /**\n * 计算两点距离\n * @param firstPoint\n * @param secondPoint\n */\n getLengthText(firstPoint, secondPoint) {\n // 计算距离\n let length = Cartesian3.distance(firstPoint, secondPoint);\n if (length > 1000) {\n length = (length / 1000).toFixed(2) + ' 公里';\n } else {\n length = length.toFixed(2) + ' 米';\n }\n return length;\n }\n\n getArea(points) {\n let ps = points.map(point => {\n let cartographic = Ellipsoid.WGS84.cartesianToCartographic(point);\n let height = this.viewer.scene.globe.getHeight(cartographic);\n return Cartesian3.fromDegrees(\n (cartographic.longitude / Math.PI) * 180,\n (cartographic.latitude / Math.PI) * 180,\n height,\n );\n });\n let s = 0;\n for (let i = 0; i < ps.length; i++) {\n let p1 = ps[i];\n let p2;\n if (i < ps.length - 1) p2 = ps[i + 1];\n else p2 = ps[0];\n s += p1.x * p2.y - p2.x * p1.y;\n }\n let res;\n\n if (s < 1000000) {\n res = Math.abs(s).toFixed(4) + ' 平方米';\n } else {\n res = Math.abs((s / 1000000.0).toFixed(4)) + ' 平方公里';\n }\n\n return res;\n }\n\n /**\n * 计算多边形的中心(简单的处理)\n * @param mPoints\n * @returns {*[]}\n */\n getCenterOfGravityPoint(mPoints) {\n let centerPoint = mPoints[0];\n for (let i = 1; i < mPoints.length; i++) {\n centerPoint = Cartesian3.midpoint(centerPoint, mPoints[i], new Cartesian3());\n }\n return centerPoint;\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
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); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _Measure = require("./Measure");
|
|
10
|
+
var _Modal = _interopRequireDefault(require("../../components/Modal"));
|
|
11
|
+
var _useProps2 = _interopRequireDefault(require("../../../use-props"));
|
|
12
|
+
var _antd = require("antd");
|
|
13
|
+
var _excluded = ["type", "active", "onClose"];
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
18
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
19
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
20
|
+
var title = {
|
|
21
|
+
MeasureDistance: '测距',
|
|
22
|
+
MeasureArea: '测面',
|
|
23
|
+
MeasureHeight: '测高'
|
|
24
|
+
};
|
|
25
|
+
var _default = exports["default"] = function _default(props) {
|
|
26
|
+
var _props$type = props.type,
|
|
27
|
+
type = _props$type === void 0 ? 'MeasureDistance' : _props$type,
|
|
28
|
+
active = props.active,
|
|
29
|
+
onClose = props.onClose,
|
|
30
|
+
rest = _objectWithoutProperties(props, _excluded);
|
|
31
|
+
var _useProps = (0, _useProps2["default"])(),
|
|
32
|
+
map = _useProps.map;
|
|
33
|
+
var measure = (0, _react.useRef)();
|
|
34
|
+
var startDraw = function startDraw() {
|
|
35
|
+
measure.current.destroy();
|
|
36
|
+
var func = {
|
|
37
|
+
MeasureDistance: 'measurePolyLine',
|
|
38
|
+
MeasureArea: 'measurePolygon',
|
|
39
|
+
MeasureHeight: 'measureHeight'
|
|
40
|
+
};
|
|
41
|
+
measure.current[func[type]]();
|
|
42
|
+
};
|
|
43
|
+
(0, _react.useEffect)(function () {
|
|
44
|
+
measure.current = new _Measure.Measure(map);
|
|
45
|
+
startDraw();
|
|
46
|
+
return function () {
|
|
47
|
+
measure.current.destroy();
|
|
48
|
+
};
|
|
49
|
+
}, [active]);
|
|
50
|
+
return /*#__PURE__*/_react["default"].createElement(_Modal["default"], _extends({
|
|
51
|
+
title: title[type],
|
|
52
|
+
onClose: onClose
|
|
53
|
+
}, rest), /*#__PURE__*/_react["default"].createElement(_antd.Space, null, /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
54
|
+
onClick: function onClick() {
|
|
55
|
+
return measure.current.destroy();
|
|
56
|
+
},
|
|
57
|
+
className: "cs-tools-btn"
|
|
58
|
+
}, "\u7ED3\u675F\u7ED8\u5236"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
59
|
+
onClick: startDraw,
|
|
60
|
+
className: "cs-tools-btn"
|
|
61
|
+
}, "\u91CD\u65B0\u7ED8\u5236")));
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_Measure","_Modal","_interopRequireDefault","_useProps2","_antd","_excluded","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","title","MeasureDistance","MeasureArea","MeasureHeight","_default","exports","props","_props$type","type","active","onClose","rest","_useProps","useProps","map","measure","useRef","startDraw","current","destroy","func","useEffect","Measure","createElement","Space","Button","onClick","className"],"sources":["tools/tool-box/Measure/index.js"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport { Measure } from './Measure';\nimport Modal from '../../components/Modal';\nimport useProps from '../../../use-props';\nimport { Button, Space } from 'antd';\n\nconst title = {\n MeasureDistance: '测距',\n MeasureArea: '测面',\n MeasureHeight: '测高',\n};\n\nexport default props => {\n const {\n type = 'MeasureDistance', // 测距 MeasureDistance | 测面 MeasureArea | 测高 MeasureHeight\n active,\n onClose,\n ...rest\n } = props;\n\n const { map } = useProps();\n const measure = useRef();\n\n const startDraw = () => {\n measure.current.destroy();\n const func = {\n MeasureDistance: 'measurePolyLine',\n MeasureArea: 'measurePolygon',\n MeasureHeight: 'measureHeight',\n };\n measure.current[func[type]]();\n };\n\n useEffect(() => {\n measure.current = new Measure(map);\n startDraw();\n return () => {\n measure.current.destroy();\n };\n }, [active]);\n return (\n <Modal title={title[type]} onClose={onClose} {...rest}>\n <Space>\n <Button onClick={() => measure.current.destroy()} className=\"cs-tools-btn\">\n 结束绘制\n </Button>\n <Button onClick={startDraw} className=\"cs-tools-btn\">\n 重新绘制\n </Button>\n </Space>\n </Modal>\n );\n};\n"],"mappings":"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"}
|