@kq_npm/client3d_webgl_vue 4.5.43 → 4.5.44

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.
@@ -369,28 +369,31 @@ class IsolineAnalysisViewModel {
369
369
 
370
370
  //开始分析
371
371
  start() {
372
+ this.remove();
372
373
  var that = this;
373
374
  // 判断是否添加了地形
374
375
  if (that._options.viewer.terrainProvider.availability) {
375
- that._drawManager?.startDraw("polygon", { clampToGround: true }, (feature, { shape }) => {
376
- if (!shape.groupName || shape.groupName !== "IsolineAnalysisDraw") return;
377
- if (shape) {
378
- that._options.positions = shape._controlPoints;
379
- switch (that._options.filltype) {
380
- case 0:
381
- that._options.type = Cesium.Kq3dContourAnalysisType.LINE;
382
- break;
383
- case 1:
384
- that._options.type = Cesium.Kq3dContourAnalysisType.SURFACE;
385
- break;
386
- case 2:
387
- that._options.type = Cesium.Kq3dContourAnalysisType.SUFACE_LINE;
388
- break;
376
+ if(that._drawManager) {
377
+ that._drawManager?.startDraw("polygon", { clampToGround: true }, (feature, { shape }) => {
378
+ if (!shape.groupName || shape.groupName !== "IsolineAnalysisDraw") return;
379
+ if (shape) {
380
+ that._options.positions = shape._controlPoints;
381
+ switch (that._options.filltype) {
382
+ case 0:
383
+ that._options.type = Cesium.Kq3dContourAnalysisType.LINE;
384
+ break;
385
+ case 1:
386
+ that._options.type = Cesium.Kq3dContourAnalysisType.SURFACE;
387
+ break;
388
+ case 2:
389
+ that._options.type = Cesium.Kq3dContourAnalysisType.SUFACE_LINE;
390
+ break;
391
+ }
392
+ that._elevation = new Cesium.Kq3dContourAnalysis(that._options);
389
393
  }
390
- that._elevation = new Cesium.Kq3dContourAnalysis(that._options);
391
- }
392
- that._drawManager.clearDrawGroup("IsolineAnalysisDraw");
393
- }, "IsolineAnalysisDraw");
394
+ that._drawManager.clearDrawGroup("IsolineAnalysisDraw");
395
+ }, "IsolineAnalysisDraw");
396
+ }
394
397
  } else {
395
398
  (0,message/* default */.A)({
396
399
  message: this._language["terrainAnalysisTips"],
@@ -398,18 +401,21 @@ class IsolineAnalysisViewModel {
398
401
  });
399
402
  }
400
403
  }
401
-
404
+ // 清除数据
405
+ remove() {
406
+ this._elevation && this._elevation.destroy();
407
+ this._elevation = null;
408
+ }
402
409
  //清除全部结果
403
410
  clear() {
404
- this._drawManager && this._drawManager.stopDraw();
411
+ this._drawManager?.stopDraw();
412
+ this._drawManager?.clearDrawGroup("IsolineAnalysisDraw");
405
413
  this._elevation && this._elevation.destroy();
406
414
  this._elevation = null;
407
415
  }
408
416
  //销毁
409
417
  destroy() {
410
- this._drawManager && this._drawManager.stopDraw();
411
- this._elevation && this._elevation.destroy();
412
- this._elevation = null;
418
+ this.clear();
413
419
  }
414
420
  //设置首曲线显隐
415
421
  setElevationMarking(show) {
package/light/index.js CHANGED
@@ -52,11 +52,13 @@ class LightViewModel {
52
52
  _drawManager = null; //绘制管理对象
53
53
  _options = null; //灯光存储参数对象
54
54
  _lightList = []; //灯光对象集合
55
+ _language = null;
55
56
 
56
57
  constructor(scenceView, options) {
57
58
  this._options = options;
58
59
  this._viewer = scenceView._viewer;
59
60
  this._drawManager = scenceView._drawManager;
61
+ this._language = scenceView._language;
60
62
  this._drawHandler = this._drawManager._drawHandler.drawHandler;
61
63
  this._lightModelDs = new Cesium.CustomDataSource("LightModel");
62
64
 
@@ -79,6 +81,7 @@ class LightViewModel {
79
81
  addLight() {
80
82
  var that = this;
81
83
  if (this._options) {
84
+ if(!this._drawManager) return;
82
85
  if (this._options.mode == "point" || this._options.mode == "spot") {
83
86
  this._drawManager.startDraw("marker", { image: null }, (feature, { shape }) => {
84
87
  if (!shape.groupName || shape.groupName !== "LightDraw") return;
@@ -95,7 +98,9 @@ class LightViewModel {
95
98
  that._drawManager && that._drawManager.clearDrawGroup("LightDraw");
96
99
  }, "LightDraw");
97
100
  } else if (this._options.mode == "parallel") {
98
- this._drawManager.startDraw("polyline", { clampToGround: false }, null, "LightDraw");
101
+ this._drawManager.startDraw("polyline", { clampToGround: false }, (feature, { shape }) => {
102
+ if (!shape.groupName || shape.groupName !== "parallelLightDraw") return;
103
+ }, "parallelLightDraw");
99
104
  }
100
105
  }
101
106
  }
@@ -201,6 +206,7 @@ class LightViewModel {
201
206
  clear() {
202
207
  this._drawManager.stopDraw();
203
208
  this._drawManager && this._drawManager.clearDrawGroup("LightDraw");
209
+ this._drawManager && this._drawManager.clearDrawGroup("parallelLightDraw");
204
210
  this._lightModelDs.entities.removeAll();
205
211
  this.clearLights();
206
212
  this._light = null;
@@ -270,7 +270,7 @@ class LimitHeightAnalysisViewModel {
270
270
  that._options.positions = shape._controlPoints;
271
271
  that.drawPolygon();
272
272
  }
273
- that._drawManager && that._drawManager.clearDrawGroup("LimitHeightAnalysisDraw");
273
+ that._drawManager.clearDrawGroup("LimitHeightAnalysisDraw");
274
274
  }, "LimitHeightAnalysisDraw");
275
275
  }
276
276
  } else {
@@ -308,6 +308,7 @@ class LimitHeightAnalysisViewModel {
308
308
  clear() {
309
309
  this._limitHeightAnalysis && this._limitHeightAnalysis.remove();
310
310
  this._drawManager && this._drawManager.stopDraw();
311
+ this._drawManager?.clearDrawGroup("LimitHeightAnalysisDraw");
311
312
  }
312
313
  // 销毁
313
314
  destroy() {
package/measure/index.js CHANGED
@@ -93,15 +93,37 @@ class MeasureViewModel {
93
93
  measureEvent = null; //测量事件
94
94
  activeEvent = null; //活动事件
95
95
  nauticalMileUnit = "nmi";
96
- constructor(viewer) {
97
- this._measureHandler = new Cesium.Kq3dMeasureHandler(viewer, { exaggerateCompute: true });
98
- this._viewer = viewer;
96
+ drawTipsStyle = null;
97
+ _language = null;
98
+ constructor(scenceView) {
99
+ this._viewer = scenceView._viewer;
100
+ this._measureHandler = new Cesium.Kq3dMeasureHandler(scenceView._viewer, { exaggerateCompute: true});
99
101
  this.measureEvent = this._measureHandler.measureEvent;
100
102
  this.activeEvent = this._measureHandler.activeEvent;
103
+ this.drawTipsStyle = scenceView._drawTipsStyle;
104
+ this._language = scenceView._language;
105
+ if(scenceView._props.showDrawTipsStyle){
106
+ this._measureHandler.showDrawTips = scenceView._props.showDrawTipsStyle;
107
+ }
108
+ }
109
+ // 设置绘制鼠标提示
110
+ setDrawTipsStyle(params = {}){
111
+ if (!this._measureHandler) return;
112
+ const processedParams = Object.entries(params).reduce((acc, [key, value]) => {
113
+ acc[key] = (value === '') ? null : value;
114
+ return acc;
115
+ }, {});
116
+ this._measureHandler.drawTipsStyle = {
117
+ ...(this.drawTipsStyle || {}),
118
+ ...processedParams
119
+ };
101
120
  }
102
-
103
121
  //距离测量
104
122
  distanceMeasure(mode) {
123
+ this.setDrawTipsStyle({
124
+ beforeDrawText: this._language?.measureBeforeDrawText,
125
+ duringDrawText: this._language?.measureDuringDrawText
126
+ });
105
127
  this._viewer.scene.globe.depthTestAgainstTerrain = true;
106
128
  if (mode === "ground") {
107
129
  this._measureHandler.startMeasure(Cesium.Kq3dMeasureMode.TerrainDistance);
@@ -114,12 +136,20 @@ class MeasureViewModel {
114
136
 
115
137
  //高度测量(三角测量)
116
138
  heightMeasure() {
139
+ this.setDrawTipsStyle({
140
+ beforeDrawText: this._language?.measureBeforeDrawText,
141
+ duringDrawText: this._language?.measureHeightDuringDrawText
142
+ });
117
143
  this._viewer.scene.globe.depthTestAgainstTerrain = true;
118
144
  this._measureHandler.startMeasure(Cesium.Kq3dMeasureMode.ComplexDistance);
119
145
  }
120
146
 
121
147
  //面积测量
122
148
  areaMeasure(mode) {
149
+ this.setDrawTipsStyle({
150
+ beforeDrawText: this._language?.measureBeforeDrawText,
151
+ duringDrawText: this._language?.measureDuringDrawText
152
+ });
123
153
  this._viewer.scene.globe.depthTestAgainstTerrain = true;
124
154
  if (mode === "ground") {
125
155
  this._measureHandler.startMeasure(Cesium.Kq3dMeasureMode.TerrainArea);
@@ -132,24 +162,40 @@ class MeasureViewModel {
132
162
 
133
163
  //方位角测量
134
164
  azimuthMeasure() {
165
+ this.setDrawTipsStyle({
166
+ beforeDrawText: this._language?.measureBeforeDrawText,
167
+ duringDrawText: this._language?.measureHeightDuringDrawText
168
+ });
135
169
  this._viewer.scene.globe.depthTestAgainstTerrain = true;
136
170
  this._measureHandler.startMeasure(Cesium.Kq3dMeasureMode.Azimuth);
137
171
  }
138
172
 
139
173
  //坐标测量
140
174
  coordinateMeasure() {
175
+ this.setDrawTipsStyle({
176
+ beforeDrawText: this._language?.measureCoordinateBeforeDrawText,
177
+ duringDrawText: this._language?.measureCoordinateBeforeDrawText
178
+ });
141
179
  this._viewer.scene.globe.depthTestAgainstTerrain = true;
142
180
  this._measureHandler.startMeasure(Cesium.Kq3dMeasureMode.Coordinate);
143
181
  }
144
182
 
145
183
  //地形坡度测量
146
184
  terrainSlopeMeasure() {
185
+ this.setDrawTipsStyle({
186
+ beforeDrawText: this._language?.measureBeforeDrawText,
187
+ duringDrawText: this._language?.measureSlopeBeforeDrawText
188
+ });
147
189
  this._viewer.scene.globe.depthTestAgainstTerrain = true;
148
190
  this._measureHandler.startMeasure(Cesium.Kq3dMeasureMode.TerrainSlope);
149
191
  }
150
192
 
151
193
  //场景坡度测量
152
194
  sceneSlopeMeasure() {
195
+ this.setDrawTipsStyle({
196
+ beforeDrawText: this._language?.measureBeforeDrawText,
197
+ duringDrawText: this._language?.measureSlopeBeforeDrawText
198
+ });
153
199
  this._viewer.scene.globe.depthTestAgainstTerrain = true;
154
200
  this._measureHandler.startMeasure(Cesium.Kq3dMeasureMode.SceneSlope);
155
201
  }
@@ -511,7 +557,7 @@ let headerTempRef = (0,external_root_Vue_commonjs_vue_commonjs2_vue_amd_vue_.ref
511
557
 
512
558
  gis_utils_.utils.getWebMap(props.target, scenceView => {
513
559
  if (scenceView) {
514
- viewModel = new MeasureViewModel/* default */.A(scenceView._viewer);
560
+ viewModel = new MeasureViewModel/* default */.A(scenceView);
515
561
  viewModel.nauticalMileUnit = nauticalMileUnit;
516
562
  //注册测量事件,以获取测量结果
517
563
  viewModel.measureEvent.addEventListener(function (res) {
@@ -252,6 +252,16 @@ class ModelFlatViewModel {
252
252
  // }
253
253
  // });
254
254
  this._measureHandler = new Cesium.Kq3dMeasureHandler(this._viewer);
255
+ if(scenceView._props.showDrawTipsStyle){
256
+ this._measureHandler.showDrawTips = scenceView._props.showDrawTipsStyle;
257
+ this._measureHandler.drawTipsStyle = {
258
+ ...scenceView._drawTipsStyle,
259
+ ...{
260
+ beforeDrawText: this._language?.beforeDrawText,
261
+ duringDrawText: this._language?.duringDrawText
262
+ }
263
+ }
264
+ }
255
265
  this._measureHandler.measureEvent.addEventListener(function (result) {
256
266
  that._measureResult = result;
257
267
  result.measureResult.label.show = false;
@@ -303,7 +313,6 @@ class ModelFlatViewModel {
303
313
  if (flag) {
304
314
  this.remove(!this._options.showFlattenedPolygons);
305
315
  this._measureHandler.startMeasure(Cesium.Kq3dMeasureMode.HorizontalArea);
306
- // this._drawManager.startDraw("polygon", { clampToGround: true });
307
316
  } else {
308
317
  (0,message/* default */.A)({
309
318
  message: this._language["addModelTips"],
@@ -339,7 +348,6 @@ class ModelFlatViewModel {
339
348
  }
340
349
  // 清除绘制
341
350
  remove(bool) {
342
- this._drawManager.stopDraw();
343
351
  if(bool){
344
352
  this._flatteningPolygonTex && this._flatteningPolygonTex.removeAllFlattenedPolygon();
345
353
  for (var i = 0; i < this._assistPolygons.length; i++) {
@@ -258,6 +258,16 @@ class ModelExcavateViewModel {
258
258
  }
259
259
  }
260
260
  this._measureHandler = new Cesium.Kq3dMeasureHandler(this._viewer);
261
+ if(scenceView._props.showDrawTipsStyle){
262
+ this._measureHandler.showDrawTips = scenceView._props.showDrawTipsStyle;
263
+ this._measureHandler.drawTipsStyle = {
264
+ ...scenceView._drawTipsStyle,
265
+ ...{
266
+ beforeDrawText: this._language?.beforeDrawText,
267
+ duringDrawText: this._language?.duringDrawText
268
+ }
269
+ }
270
+ }
261
271
  this._measureHandler.measureEvent.addEventListener(function (result) {
262
272
  that._measureResult = result;
263
273
  result.measureResult.label.show = false;
@@ -211,9 +211,9 @@ var message = __webpack_require__(1092);
211
211
  */
212
212
  //分析逻辑类
213
213
  let floatingPoint;
214
- let drawPoints = [];
214
+ let drawPoints = (/* unused pure expression or super */ null && ([]));
215
215
  let activeShapePoints = [];
216
- let activeCartographicPoints = [];
216
+ let activeCartographicPoints = (/* unused pure expression or super */ null && ([]));
217
217
 
218
218
  class ModelProfileAnalysisViewModel {
219
219
  _profileAnalysis = null; //剖面分析三维对象
@@ -225,8 +225,10 @@ class ModelProfileAnalysisViewModel {
225
225
  width: 360,
226
226
  height: 360
227
227
  };
228
+ _drawManager = null;
228
229
  constructor(scenceView, viewModel, chart) {
229
- this._language = scenceView._language;
230
+ this._drawManager = scenceView._drawManager;
231
+ this._language = scenceView._language || {};
230
232
  this._globaOptions.viewModel = {
231
233
  angle: viewModel.perspectiveAngle || 90,
232
234
  frustumH: viewModel.targetAreaHeight || 200,
@@ -280,14 +282,7 @@ class ModelProfileAnalysisViewModel {
280
282
  this._globaOptions._handler.setInputAction(function (event) {
281
283
  var earthPosition = that._globaOptions.viewer.scene.pickPosition(event.position);
282
284
  if (window.Cesium.defined(earthPosition)) {
283
- //绘制点
284
- floatingPoint = that.createPoint(earthPosition);
285
- drawPoints.push(floatingPoint);
286
-
287
285
  activeShapePoints.push(earthPosition);
288
- let earthPositionCarto = window.Cesium.Cartographic.fromCartesian(earthPosition);
289
- activeCartographicPoints.push(earthPositionCarto);
290
-
291
286
  //单线分析结果显示
292
287
  if (activeShapePoints.length == 2) {
293
288
  var newPositions = [];
@@ -295,20 +290,19 @@ class ModelProfileAnalysisViewModel {
295
290
  var newPosition = window.Cesium.Cartographic.fromCartesian(position);
296
291
  newPositions.push(newPosition);
297
292
  });
298
-
299
293
  that._profileAnalysis.elevation = newPositions;
300
294
  setTimeout(() => {
301
295
  that.updatePorfileAnalysis();
302
296
  }, 200);
303
-
304
- drawPoints.forEach(function (point) {
305
- that._globaOptions.viewer.entities.remove(point);
306
- });
307
- drawPoints = [];
308
297
  activeShapePoints = [];
298
+ that._drawManager?.stopDraw?.();
309
299
  }
310
300
  }
311
301
  }, window.Cesium.ScreenSpaceEventType.LEFT_CLICK);
302
+ this._drawManager?.startDraw?.("polyline", { clampToGround: true }, (feature, { shape }) => {
303
+ if (!shape.groupName || shape.groupName !== "ModelProfileAnalysis") return;
304
+ that._drawManager.clearDrawGroup("ModelProfileAnalysis");
305
+ }, "ModelProfileAnalysis");
312
306
  } else {
313
307
  (0,message/* default */.A)({
314
308
  message: this._language["addModelTips"],
@@ -430,8 +424,10 @@ class ModelProfileAnalysisViewModel {
430
424
  }
431
425
  // 清理剖面分析
432
426
  remove() {
427
+ this._drawManager?.clearDrawGroup("ModelProfileAnalysis");
433
428
  this._ProfileAnalysisChartVis.value = false;
434
429
  this._profileAnalysis && this._profileAnalysis.clearPrimitives();
430
+ this._drawManager?.stopDraw();
435
431
  }
436
432
  //清除全部结果
437
433
  clear() {
package/package.json CHANGED
@@ -1 +1 @@
1
- {"jsdelivr":"./webgl.es.js","name":"@kq_npm/client3d_webgl_vue","description":"KQGIS Client WebGL for Vue.js","version":"4.5.43","homepage":"","keywords":["KQGIS","webGL","Vue"],"sdkNames":["@kq_npm/client_icons_vue"],"restrictedVersion":true,"validateSDK":true,"browserslist":["> 1%","last 2 versions","not dead","not ie 11"],"author":"zhupc_npm","license":"Apache-2.0","dependencies":{"html2canvas-pro":"1.5.10","save":"2.5.0","papaparse":"5.4.1"}}
1
+ {"jsdelivr":"./webgl.es.js","name":"@kq_npm/client3d_webgl_vue","description":"KQGIS Client WebGL for Vue.js","version":"4.5.44","homepage":"","keywords":["KQGIS","webGL","Vue"],"sdkNames":["@kq_npm/client_icons_vue"],"restrictedVersion":true,"validateSDK":true,"browserslist":["> 1%","last 2 versions","not dead","not ie 11"],"author":"zhupc_npm","license":"Apache-2.0","dependencies":{"html2canvas-pro":"1.5.10","save":"2.5.0","papaparse":"5.4.1"}}
@@ -163,12 +163,13 @@ class ParticleEffectViewModel {
163
163
  _options = null; //粒子特效存储参数对象
164
164
  _fireImage = const_image_.FIRE_URL; //火焰图片url地址
165
165
  _smokeImage = const_image_.SMOKE_URL; //烟雾图片url地址
166
-
166
+ _language = null;
167
167
  constructor(scenceView) {
168
168
  scenceView._viewer.clock.shouldAnimate = true;
169
169
  scenceView._viewer.scene.globe.depthTestAgainstTerrain = true;
170
170
  this._scene = scenceView._viewer.scene;
171
171
  this._drawManager = scenceView._drawManager;
172
+ this._language = scenceView._language;
172
173
  _gravityScratch = new Cesium.Cartesian3();
173
174
  }
174
175
 
@@ -299,7 +299,8 @@ class PlaneClipViewModel {
299
299
  }
300
300
  }
301
301
  if (flag) {
302
- if (this._drawManager) this._drawManager.startDraw("marker", { image: null }, (feature, { shape }) => {
302
+ if (!this._drawManager) return;
303
+ this._drawManager.startDraw("marker", { image: null }, (feature, { shape }) => {
303
304
  if (!shape.groupName || shape.groupName !== "PlaneClipDraw") return;
304
305
  if (shape) {
305
306
  that._options.position = shape.position;
@@ -60,10 +60,12 @@ class RadarScanAnalysisViewModel {
60
60
  };
61
61
  _drawManager = null; // 绘制对象
62
62
  _radarScan = null; // 扫描对象
63
+ _language = null;
63
64
  constructor(scenceView, option) {
64
65
  this._viewer = scenceView._viewer;
65
66
  Object.assign(this._options, option);
66
67
  this._drawManager = scenceView._drawManager;
68
+ this._language = scenceView._language;
67
69
  }
68
70
  //获取颜色rgba值
69
71
  getRgba(color) {
@@ -165,7 +167,7 @@ class RadarScanAnalysisViewModel {
165
167
  });
166
168
  }
167
169
  }
168
- that._drawManager && that._drawManager.clearDrawGroup("RadarScanAnalysis");
170
+ that._drawManager.clearDrawGroup("RadarScanAnalysis");
169
171
  }, "RadarScanAnalysis");
170
172
  }
171
173
  }
@@ -174,6 +176,7 @@ class RadarScanAnalysisViewModel {
174
176
  this._radarScan && this._radarScan.destroy?.();
175
177
  this._radarScan = null;
176
178
  this._drawManager && this._drawManager.stopDraw();
179
+ this._drawManager && this._drawManager.clearDrawGroup("RadarScanAnalysis");
177
180
  }
178
181
  // 销毁
179
182
  destroy() {