@kq_npm/client3d_webgl_vue 4.5.55 → 4.5.57
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/adddata/index.js +189 -21
- package/airspacegridoccupancyquery/index.js +1977 -0
- package/airspacegridoccupancyquery/style/airspacegridoccupancyquery.css +1 -0
- package/airspacegridoccupancyquery/style/index.js +3 -0
- package/airspaceprofileanalysis/index.js +1870 -0
- package/airspaceprofileanalysis/style/airspaceprofileanalysis.css +1 -0
- package/airspaceprofileanalysis/style/index.js +3 -0
- package/aspectanalysis/index.js +25 -7
- package/baseterraingallery/index.js +16 -4
- package/boxclip/index.js +58 -16
- package/buildpointmodel/index.js +3207 -230
- package/buildpointmodel/style/buildpointmodel.css +1 -1
- package/buildpolygonmodel/index.js +205 -81
- package/buildpolylinemodel/index.js +346 -70
- package/clientPrint/index.js +32440 -2337
- package/comparemap/index.js +132 -60
- package/compass/index.js +16 -6
- package/excavatefillanalysis/index.js +51 -7
- package/fixedzoomin/index.js +24 -7
- package/fixedzoomout/index.js +25 -7
- package/flight/index.js +113 -26
- package/floodanalysis/index.js +79 -14
- package/geologicalbodyanalysis/index.js +41 -5
- package/gpuspatialquery/index.js +127 -19
- package/gridoccupancyquery/index.js +627 -0
- package/gridoccupancyquery/style/gridoccupancyquery.css +1 -0
- package/gridoccupancyquery/style/index.js +3 -0
- package/hawkeye/index.js +20 -2
- package/headertemp/index.js +7 -2
- package/heatmap3d/index.js +282 -158
- package/index.js +32440 -2337
- package/isolineanalysis/index.js +113 -38
- package/light/index.js +80 -22
- package/limitheightanalysis/index.js +30 -10
- package/lowaltitudefeature/index.js +5027 -0
- package/lowaltitudefeature/style/index.js +3 -0
- package/lowaltitudefeature/style/lowaltitudefeature.css +1 -0
- package/measure/index.js +60 -19
- package/modelFlat/index.js +48 -8
- package/modeledit/index.js +38 -4
- package/modelexcavate/index.js +48 -7
- package/modelfilter/index.js +51 -8
- package/modelmaterialedit/index.js +127 -25
- package/modelprofileanalysis/index.js +51 -14
- package/modelselect/index.js +34 -3
- package/modelstyleedit/index.js +39 -3
- package/modeltransform/index.js +79 -14
- package/package.json +1 -1
- package/particleeffect/index.js +83 -17
- package/planeclip/index.js +66 -17
- package/pointcloudrender/index.js +134 -15
- package/radarscananalysis/index.js +35 -3
- package/resetview/index.js +14 -6
- package/roller/index.js +55 -18
- package/scaneffect/index.js +98 -29
- package/sceneadvancedtoimage/index.js +32 -6
- package/sceneapp/index.js +32440 -2337
- package/sceneset/index.js +141 -71
- package/scenetohdimage/index.js +23 -3
- package/sceneview/index.js +32440 -2337
- package/sceneview/style/sceneview.css +1 -1
- package/screenshot/index.js +44 -11
- package/shadowanalysis/index.js +79 -19
- package/sightlineanalysis/index.js +66 -15
- package/skylineanalysis/index.js +20 -4
- package/slopeanalysis/index.js +75 -16
- package/slopeaspectanalysis/index.js +128 -26
- package/statusbar/index.js +80 -67
- package/style.css +1 -1
- package/terrainoperation/index.js +39 -7
- package/terrainprofileanalysis/index.js +43 -5
- package/toolbarapp/index.js +32440 -2337
- package/toolboxapp/index.js +32440 -2337
- package/typhoontrac/index.js +134 -16
- package/underground/index.js +8 -2
- package/videofusion/index.js +164 -79
- package/videoproject/index.js +77 -23
- package/viewshedanalysis/index.js +61 -14
- package/weathereffect/index.js +73 -18
- package/webgl.es.js +866 -16
- package/windyslicing/index.js +258 -54
- package/wireframesketch/index.js +25 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.kq-low-altitude-feature{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding:16px;font-size:13px;color:#333;overflow:hidden;padding:var(--kq-box-padding);border-radius:var(--kq-border-radius-base);background-color:var(--kq-bg-color)}.kq-low-altitude-feature .kq-box-shadow{-webkit-box-shadow:0 2px 12px rgba(0,0,0,.1);box-shadow:0 2px 12px rgba(0,0,0,.1)}.kq-low-altitude-feature-box{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;height:100%;min-height:400px}.kq-laf-left-panel{width:280px;min-width:240px;height:800px;border-right:1px solid #e4e7ed;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.kq-laf-left-panel .kq-laf-list-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #ebeef5}.kq-laf-left-panel .kq-laf-list-header .kq-laf-title{font-size:14px;font-weight:600;color:#303133}.kq-laf-left-panel .kq-laf-list-header .kq-laf-header-icon{color:#909399;cursor:pointer}.kq-laf-left-panel .kq-laf-list-header .kq-laf-header-icon:hover{color:#409eff}.kq-laf-left-panel .kq-laf-search{padding:8px 12px;border-bottom:1px solid #ebeef5}.kq-laf-left-panel .kq-laf-tree-scroll{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden}.kq-laf-left-panel .kq-laf-tree-scroll .el-scrollbar__wrap{overflow-x:hidden}.kq-laf-left-panel .kq-tree{background:transparent;padding:4px 0}.kq-laf-left-panel .kq-tree .el-tree-node__content{height:36px;line-height:36px}.kq-laf-left-panel .kq-tree .el-tree-node__content:hover{background-color:#f5f7fa}.kq-laf-left-panel .kq-tree .el-tree-node__content:has(.kq-laf-category-name){font-weight:500}.kq-laf-left-panel .kq-laf-tree-label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;padding-right:8px;-webkit-box-sizing:border-box;box-sizing:border-box}.kq-laf-left-panel .kq-laf-category-name{-webkit-box-flex:1;-ms-flex:1;flex:1;font-weight:500;font-size:13px;color:#303133;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:6px}.kq-laf-left-panel .kq-laf-add-btn{color:#409eff;opacity:.8;cursor:pointer;-ms-flex-negative:0;flex-shrink:0}.kq-laf-left-panel .kq-laf-add-btn:hover{opacity:1;color:#337ecc}.kq-laf-left-panel .kq-laf-feature-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%}.kq-laf-left-panel .kq-laf-feature-row .kq-laf-feature-name{-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:12px;color:#606266;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:6px}.kq-laf-left-panel .kq-laf-feature-row .kq-laf-feature-actions{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:2px;opacity:0;-webkit-transition:opacity .15s;transition:opacity .15s}.kq-laf-left-panel .kq-laf-feature-row:hover .kq-laf-feature-actions{opacity:1}.kq-laf-left-panel .kq-laf-action-btn{padding:2px 3px;border-radius:3px;cursor:pointer;color:#909399;-webkit-transition:all .15s;transition:all .15s}.kq-laf-left-panel .kq-laf-action-btn:hover{background-color:rgba(64,158,255,.1);color:#409eff}.kq-laf-left-panel .kq-laf-action-btn.active,.kq-laf-left-panel .kq-laf-action-btn.kq-laf-grid-btn.active,.kq-laf-left-panel .kq-laf-action-btn.kq-laf-grid-btn:hover{color:#67c23a}.kq-laf-left-panel .kq-laf-action-btn.kq-laf-edit-btn:hover{color:#e6a23c}.kq-laf-left-panel .kq-laf-action-btn.kq-laf-zoom-btn:hover{color:#409eff}.kq-laf-left-panel .kq-laf-action-btn.kq-laf-delete-btn:hover{color:#f56c6c}.kq-laf-left-panel .kq-laf-empty{padding:16px;text-align:center;color:#c0c4cc;font-size:12px}.kq-laf-right-panel{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-width:140px;max-width:420px;width:420px}.kq-laf-right-panel .kq-laf-panel-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #ebeef5;-ms-flex-negative:0;flex-shrink:0}.kq-laf-right-panel .kq-laf-panel-header .kq-laf-panel-title{font-size:14px;font-weight:600;color:#303133}.kq-laf-right-panel .kq-laf-panel-header .kq-laf-collapse-btn{color:#909399;cursor:pointer}.kq-laf-right-panel .kq-laf-panel-header .kq-laf-collapse-btn:hover{color:#409eff}.kq-laf-right-panel .kq-laf-panel-body{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow-y:auto;padding:16px}.kq-laf-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;gap:8px;padding:12px 0;border-bottom:1px solid #f0f0f0;margin-bottom:16px;-ms-flex-wrap:wrap;flex-wrap:wrap}.kq-laf-toolbar .el-divider--vertical,.kq-laf-toolbar .kq-divider--vertical{height:36px;margin:0 20px}.kq-laf-toolbar .kq-laf-tool-btn{width:36px!important;height:36px!important}.kq-laf-symbol-settings{border-top:1px solid #ebeef5;padding-top:12px;margin-top:8px}.kq-laf-symbol-settings .kq-laf-settings-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:8px 0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-weight:500;font-size:13px;color:#303133}.kq-laf-symbol-settings .kq-laf-settings-header:hover{color:#409eff}.kq-laf-symbol-settings .kq-laf-settings-header .kq-icon{color:#909399;-webkit-transition:-webkit-transform .2s;transition:-webkit-transform .2s;transition:transform .2s;transition:transform .2s, -webkit-transform .2s}.kq-laf-symbol-settings .kq-laf-settings-header .kq-icon.is-active{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.kq-laf-symbol-settings .kq-laf-settings-body{padding:8px 0}.kq-laf-symbol-settings .kq-laf-settings-body .kq-form-item{margin-bottom:8px}.kq-laf-symbol-settings .kq-laf-settings-body .kq-form-item:last-child{margin-bottom:0}.kq-laf-symbol-settings .kq-laf-settings-body .el-radio-group{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px 16px;min-height:32px}.kq-laf-symbol-settings .kq-laf-settings-body .el-radio-group .el-radio{margin-right:0;white-space:nowrap}.kq-laf-symbol-settings .el-slider,.kq-laf-symbol-settings .kq-slider{width:calc(100% - 18px);margin-right:var(--kq-box-padding)}.kq-laf-setting-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;margin-bottom:14px}.kq-laf-setting-row .kq-laf-setting-label{-ms-flex-negative:0;flex-shrink:0;width:80px;font-size:12px;color:#606266;line-height:32px;text-align:right;padding-right:8px}.kq-laf-setting-row .kq-laf-slider-wrap{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:180px;width:300px}.kq-laf-setting-row .kq-laf-slider-wrap .el-slider .el-slider__input{width:70px}.kq-laf-setting-row .kq-laf-radio-group{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:12px 20px;min-height:32px}.kq-laf-setting-row .kq-laf-radio-group .kq-radio{margin-right:0;white-space:nowrap}.kq-laf-setting-row .kq-laf-radio-group.kq-laf-buffer-types{gap:8px 16px}.kq-laf-setting-row .el-slider,.kq-laf-setting-row .kq-slider{width:calc(100% - 18px);margin-right:var(--kq-box-padding)}.kq-laf-panel-footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;gap:10px;padding-top:16px;border-top:1px solid #ebeef5;margin-top:8px}@media screen and (max-width:800px){.kq-low-altitude-feature-box{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.kq-laf-left-panel{width:100%;min-width:auto;max-height:250px;border-right:none;border-bottom:1px solid #e4e7ed}.kq-laf-right-panel{max-width:none}}
|
package/measure/index.js
CHANGED
|
@@ -255,19 +255,20 @@ var _default = exports.A = /*@__PURE__*/Object.assign(__default__, {
|
|
|
255
255
|
} = (0, _useGlobalConfig.useLocale)();
|
|
256
256
|
const props = __props;
|
|
257
257
|
let measureType = (0, _vue.ref)(null); // 测量类型
|
|
258
|
-
let isActive = (0, _vue.ref)(null);
|
|
259
|
-
let isResult = (0, _vue.ref)(false);
|
|
260
|
-
let isTips = (0, _vue.ref)(false);
|
|
261
|
-
let distanceValue = null;
|
|
258
|
+
let isActive = (0, _vue.ref)(null); // 当前激活的测量类型
|
|
259
|
+
let isResult = (0, _vue.ref)(false); // 是否显示测量结果面板
|
|
260
|
+
let isTips = (0, _vue.ref)(false); // 是否显示测量提示
|
|
261
|
+
let distanceValue = null; // 原始距离/面积数值(用于单位换算)
|
|
262
262
|
// 默认显示距离的单位
|
|
263
263
|
let distanceUnit = (0, _vue.ref)(props.settingParams && props.settingParams.distanceUnit || "");
|
|
264
264
|
// 海里单位选择
|
|
265
265
|
let nauticalMileUnit = props.settingParams && props.settingParams.nauticalMileUnit || "nmi";
|
|
266
266
|
// 面积单位
|
|
267
267
|
let areaUnit = (0, _vue.ref)(props.settingParams && props.settingParams.areaUnit || "");
|
|
268
|
-
let result = (0, _vue.ref)(0);
|
|
269
|
-
|
|
270
|
-
let
|
|
268
|
+
let result = (0, _vue.ref)(0); // 测量结果显示值
|
|
269
|
+
|
|
270
|
+
let mode = (0, _vue.ref)("space"); // 测量模式:space/ground/model
|
|
271
|
+
let viewModel = null; // 测量视图模型实例
|
|
271
272
|
(0, _vue.watch)(() => lang.value, (newVal, oldVal) => {
|
|
272
273
|
distanceUnits.value = setDistanceUnits();
|
|
273
274
|
areaUnits.value = setAreaUnits();
|
|
@@ -483,7 +484,10 @@ var _default = exports.A = /*@__PURE__*/Object.assign(__default__, {
|
|
|
483
484
|
}
|
|
484
485
|
});
|
|
485
486
|
});
|
|
486
|
-
|
|
487
|
+
/** @description 经纬度转度分秒
|
|
488
|
+
* @param {Number} val 经纬度数值
|
|
489
|
+
* @returns {String} 度分秒格式字符串
|
|
490
|
+
*/
|
|
487
491
|
function convertXY(val) {
|
|
488
492
|
if (!val) {
|
|
489
493
|
return "";
|
|
@@ -511,6 +515,11 @@ var _default = exports.A = /*@__PURE__*/Object.assign(__default__, {
|
|
|
511
515
|
});
|
|
512
516
|
}
|
|
513
517
|
};
|
|
518
|
+
|
|
519
|
+
/** @description 格式化距离数值,自动选择 m/km 单位
|
|
520
|
+
* @param {Number} dis 距离数值(米)
|
|
521
|
+
* @returns {String} 带单位的距离字符串
|
|
522
|
+
*/
|
|
514
523
|
function formatDistance(dis) {
|
|
515
524
|
if (dis > 5000) {
|
|
516
525
|
dis = dis / 1000;
|
|
@@ -520,6 +529,11 @@ var _default = exports.A = /*@__PURE__*/Object.assign(__default__, {
|
|
|
520
529
|
}
|
|
521
530
|
return dis.toFixed(2) + " " + distanceUnit.value;
|
|
522
531
|
}
|
|
532
|
+
|
|
533
|
+
/** @description 格式化面积数值,自动选择 m²/km² 单位
|
|
534
|
+
* @param {Number} area 面积数值(平方米)
|
|
535
|
+
* @returns {String} 带单位的面积字符串
|
|
536
|
+
*/
|
|
523
537
|
function formatArea(area) {
|
|
524
538
|
areaUnit.value = "m²";
|
|
525
539
|
if (area > 1000000) {
|
|
@@ -640,6 +654,8 @@ var _default = exports.A = /*@__PURE__*/Object.assign(__default__, {
|
|
|
640
654
|
break;
|
|
641
655
|
}
|
|
642
656
|
}
|
|
657
|
+
|
|
658
|
+
// 继续连续测量
|
|
643
659
|
function continueMeasure() {
|
|
644
660
|
setTimeout(() => {
|
|
645
661
|
switch (measureType.value) {
|
|
@@ -1451,8 +1467,14 @@ var _useGlobalConfig = __webpack_require__(22686);
|
|
|
1451
1467
|
//测量操作类
|
|
1452
1468
|
|
|
1453
1469
|
class MeasureViewModel {
|
|
1470
|
+
// 当前语言包
|
|
1471
|
+
/** @description 构造函数,初始化测量视图模型
|
|
1472
|
+
* @param {Object} scenceView 场景视图对象
|
|
1473
|
+
* @param {Boolean} exaggerateCompute 是否启用夸张计算
|
|
1474
|
+
*/
|
|
1454
1475
|
constructor(scenceView, exaggerateCompute) {
|
|
1455
1476
|
this._viewer = null;
|
|
1477
|
+
// Cesium Viewer 实例
|
|
1456
1478
|
this._measureHandler = null;
|
|
1457
1479
|
//测量三维对象
|
|
1458
1480
|
this.measureEvent = null;
|
|
@@ -1460,7 +1482,9 @@ class MeasureViewModel {
|
|
|
1460
1482
|
this.activeEvent = null;
|
|
1461
1483
|
//活动事件
|
|
1462
1484
|
this.nauticalMileUnit = "nmi";
|
|
1485
|
+
// 海里单位标识
|
|
1463
1486
|
this.drawTipsStyle = null;
|
|
1487
|
+
// 绘制提示样式
|
|
1464
1488
|
this._language = null;
|
|
1465
1489
|
const {
|
|
1466
1490
|
locale
|
|
@@ -1478,9 +1502,12 @@ class MeasureViewModel {
|
|
|
1478
1502
|
this._measureHandler.showDrawTips = scenceView._props.showDrawTipsStyle;
|
|
1479
1503
|
}
|
|
1480
1504
|
}
|
|
1481
|
-
|
|
1505
|
+
/** @description 设置绘制鼠标提示
|
|
1506
|
+
* @param {Object} params 提示样式参数
|
|
1507
|
+
*/
|
|
1482
1508
|
setDrawTipsStyle(params = {}) {
|
|
1483
1509
|
if (!this._measureHandler) return;
|
|
1510
|
+
// 空字符串转为 null,避免显示空提示
|
|
1484
1511
|
const processedParams = Object.entries(params).reduce((acc, [key, value]) => {
|
|
1485
1512
|
acc[key] = value === '' ? null : value;
|
|
1486
1513
|
return acc;
|
|
@@ -1490,13 +1517,16 @@ class MeasureViewModel {
|
|
|
1490
1517
|
...processedParams
|
|
1491
1518
|
};
|
|
1492
1519
|
}
|
|
1493
|
-
|
|
1520
|
+
/** @description 距离测量
|
|
1521
|
+
* @param {String} mode 测量模式:ground/model/空
|
|
1522
|
+
*/
|
|
1494
1523
|
distanceMeasure(mode) {
|
|
1495
1524
|
this.setDrawTipsStyle({
|
|
1496
1525
|
beforeDrawText: this._language.value.webgl.measureBeforeDrawText,
|
|
1497
1526
|
duringDrawText: this._language.value.webgl.measureDuringDrawText
|
|
1498
1527
|
});
|
|
1499
1528
|
this._viewer.scene.globe.depthTestAgainstTerrain = true;
|
|
1529
|
+
// 根据模式选择对应测量方式
|
|
1500
1530
|
if (mode === "ground") {
|
|
1501
1531
|
this._measureHandler.startMeasure(Cesium.Kq3dMeasureMode.TerrainDistance);
|
|
1502
1532
|
} else if (mode === "model") {
|
|
@@ -1516,13 +1546,16 @@ class MeasureViewModel {
|
|
|
1516
1546
|
this._measureHandler.startMeasure(Cesium.Kq3dMeasureMode.ComplexDistance);
|
|
1517
1547
|
}
|
|
1518
1548
|
|
|
1519
|
-
|
|
1549
|
+
/** @description 面积测量
|
|
1550
|
+
* @param {String} mode 测量模式:ground/model/空
|
|
1551
|
+
*/
|
|
1520
1552
|
areaMeasure(mode) {
|
|
1521
1553
|
this.setDrawTipsStyle({
|
|
1522
1554
|
beforeDrawText: this._language.value.webgl.measureBeforeDrawText,
|
|
1523
1555
|
duringDrawText: this._language.value.webgl.measureDuringDrawText
|
|
1524
1556
|
});
|
|
1525
1557
|
this._viewer.scene.globe.depthTestAgainstTerrain = true;
|
|
1558
|
+
// 根据模式选择对应测量方式
|
|
1526
1559
|
if (mode === "ground") {
|
|
1527
1560
|
this._measureHandler.startMeasure(Cesium.Kq3dMeasureMode.TerrainArea);
|
|
1528
1561
|
} else if (mode === "model") {
|
|
@@ -1578,7 +1611,10 @@ class MeasureViewModel {
|
|
|
1578
1611
|
this._viewer.scene.globe.depthTestAgainstTerrain = false;
|
|
1579
1612
|
}
|
|
1580
1613
|
|
|
1581
|
-
|
|
1614
|
+
/** @description 更新距离测量单位
|
|
1615
|
+
* @param {Object|Number} distanceTotal 距离测量结果,可能是数值或包含 verticalDistance/horizontalDistance 等字段的对象
|
|
1616
|
+
* @param {String} unit 单位标识
|
|
1617
|
+
*/
|
|
1582
1618
|
updateDistanceUnit(distanceTotal, unit) {
|
|
1583
1619
|
if (this._measureHandler.measureResults) {
|
|
1584
1620
|
this._measureHandler.measureResults.forEach(measureResult => {
|
|
@@ -1595,8 +1631,8 @@ class MeasureViewModel {
|
|
|
1595
1631
|
measureResult.label.text = this.convertValueUnit(distanceTotal, unit);
|
|
1596
1632
|
} else if (measureResult.polyline) {
|
|
1597
1633
|
// 距离测量结果
|
|
1598
|
-
|
|
1599
|
-
|
|
1634
|
+
const labels = measureResult.labels._labels;
|
|
1635
|
+
const positions = measureResult.polyline.positions;
|
|
1600
1636
|
let dist = 0;
|
|
1601
1637
|
if (!Cesium.Color.equals(measureResult.label.fillColor, Cesium.Color.RED)) {
|
|
1602
1638
|
// 测量过程中实时切换单位
|
|
@@ -1625,7 +1661,11 @@ class MeasureViewModel {
|
|
|
1625
1661
|
}
|
|
1626
1662
|
}
|
|
1627
1663
|
|
|
1628
|
-
|
|
1664
|
+
/** @description 测量距离数值单位换算
|
|
1665
|
+
* @param {Number} value 数值
|
|
1666
|
+
* @param {String} unit 单位标识
|
|
1667
|
+
* @returns {String} 换算后的带单位字符串
|
|
1668
|
+
*/
|
|
1629
1669
|
convertValueUnit(value, unit) {
|
|
1630
1670
|
let newValue = "";
|
|
1631
1671
|
switch (unit) {
|
|
@@ -1664,7 +1704,8 @@ class MeasureViewModel {
|
|
|
1664
1704
|
// 判断是否加载模型
|
|
1665
1705
|
checkModelAdded() {
|
|
1666
1706
|
let isAdd = false;
|
|
1667
|
-
|
|
1707
|
+
const models = this._viewer.scene.primitives._primitives;
|
|
1708
|
+
// 遍历场景图元查找 3D Tileset 模型
|
|
1668
1709
|
for (let i = 0; i < models.length; i++) {
|
|
1669
1710
|
if (models[i] instanceof Cesium.Cesium3DTileset) {
|
|
1670
1711
|
isAdd = true;
|
|
@@ -1698,11 +1739,11 @@ Object.defineProperty(exports, "__esModule", ({
|
|
|
1698
1739
|
value: true
|
|
1699
1740
|
}));
|
|
1700
1741
|
exports.kq_npm_client_leaflet_vue = exports.kq_npm_client_common_vue = exports.kq_npm_client3d_webgl_vue = void 0;
|
|
1701
|
-
|
|
1742
|
+
const kq_npm_client_common_vue = exports.kq_npm_client_common_vue = window.kq_npm_client_common_vue = window.kq_npm_client_common_vue || {};
|
|
1702
1743
|
__webpack_require__.g.kq_npm_client_common_vue = kq_npm_client_common_vue;
|
|
1703
|
-
|
|
1744
|
+
const kq_npm_client_leaflet_vue = exports.kq_npm_client_leaflet_vue = window.kq_npm_client_leaflet_vue = window.kq_npm_client_leaflet_vue || {};
|
|
1704
1745
|
__webpack_require__.g.kq_npm_client_leaflet_vue = kq_npm_client_leaflet_vue;
|
|
1705
|
-
|
|
1746
|
+
const kq_npm_client3d_webgl_vue = exports.kq_npm_client3d_webgl_vue = window.kq_npm_client3d_webgl_vue = window.kq_npm_client3d_webgl_vue || {};
|
|
1706
1747
|
__webpack_require__.g.kq_npm_client3d_webgl_vue = kq_npm_client3d_webgl_vue;
|
|
1707
1748
|
|
|
1708
1749
|
/***/ })
|
package/modelFlat/index.js
CHANGED
|
@@ -79,6 +79,12 @@ var _gisUtils = __webpack_require__(20064);
|
|
|
79
79
|
//模型平整逻辑类
|
|
80
80
|
|
|
81
81
|
class ModelFlatViewModel {
|
|
82
|
+
/**
|
|
83
|
+
* @description 构造函数,初始化viewer、绘制管理器、平整纹理对象、测量处理器及图层监听
|
|
84
|
+
* @param {Object} scenceView 三维场景视图对象
|
|
85
|
+
* @param {Object} viewModel 表单参数对象
|
|
86
|
+
* @param {Function} callbackParams 回调函数,用于通知外部状态变化
|
|
87
|
+
*/
|
|
82
88
|
constructor(scenceView, viewModel, callbackParams) {
|
|
83
89
|
this._viewer = null;
|
|
84
90
|
//三维viewer对象
|
|
@@ -97,6 +103,7 @@ class ModelFlatViewModel {
|
|
|
97
103
|
this._assistPolygons = [];
|
|
98
104
|
//平整辅助面数组
|
|
99
105
|
this.currentFlatPolygonIndex = -1;
|
|
106
|
+
//当前操作的平整实例索引
|
|
100
107
|
this._language = {};
|
|
101
108
|
this.tiles = [];
|
|
102
109
|
this.callbackParams = null;
|
|
@@ -110,8 +117,10 @@ class ModelFlatViewModel {
|
|
|
110
117
|
this._drawManager = scenceView._drawManager;
|
|
111
118
|
//Create flattenning controller
|
|
112
119
|
var that = this;
|
|
120
|
+
// 创建平整多边形纹理对象
|
|
113
121
|
let kq3dFlattenning = new window.Cesium.Kq3dFlattenning(this._viewer, {});
|
|
114
122
|
this._flatteningPolygonTex = kq3dFlattenning.createFlattenedPolygonTexture();
|
|
123
|
+
// 实例化测量处理器
|
|
115
124
|
this._measureHandler = new Cesium.Kq3dMeasureHandler(this._viewer);
|
|
116
125
|
if (scenceView._props.showDrawTipsStyle) {
|
|
117
126
|
this._measureHandler.showDrawTips = scenceView._props.showDrawTipsStyle;
|
|
@@ -123,10 +132,12 @@ class ModelFlatViewModel {
|
|
|
123
132
|
}
|
|
124
133
|
};
|
|
125
134
|
}
|
|
135
|
+
// 测量完成事件:保存测量结果并隐藏标签
|
|
126
136
|
this._measureHandler.measureEvent.addEventListener(function (result) {
|
|
127
137
|
that._measureResult = result;
|
|
128
138
|
result.measureResult.label.show = false;
|
|
129
139
|
});
|
|
140
|
+
// 测量激活状态变化事件:测量结束时创建平整,并按需连续绘制多个平整
|
|
130
141
|
this._measureHandler.activeEvent.addEventListener(function (ret) {
|
|
131
142
|
if (ret == false) {
|
|
132
143
|
if (that._measureResult) {
|
|
@@ -196,6 +207,7 @@ class ModelFlatViewModel {
|
|
|
196
207
|
var flag = false;
|
|
197
208
|
this.remove();
|
|
198
209
|
var models = this._viewer.scene.primitives._primitives;
|
|
210
|
+
// 遍历所有3dtiles,对选中模型启用平整并附加纹理
|
|
199
211
|
for (let i = 0; i < models.length; i++) {
|
|
200
212
|
if (models[i] instanceof Cesium.Cesium3DTileset && models[i]._url) {
|
|
201
213
|
if (this.tiles.includes(models[i].guid)) {
|
|
@@ -209,8 +221,10 @@ class ModelFlatViewModel {
|
|
|
209
221
|
}
|
|
210
222
|
}
|
|
211
223
|
if (flag) {
|
|
224
|
+
// 存在模型时启动水平面积测量,触发后续平整创建
|
|
212
225
|
this._measureHandler.startMeasure(Cesium.Kq3dMeasureMode.HorizontalArea);
|
|
213
226
|
} else {
|
|
227
|
+
// 未添加模型时给出警告
|
|
214
228
|
(0, _message.default)({
|
|
215
229
|
message: this._language.value.webgl["addModelTips"],
|
|
216
230
|
type: "warning"
|
|
@@ -224,16 +238,23 @@ class ModelFlatViewModel {
|
|
|
224
238
|
if (model.refresh) model.refresh(tileset, tile.content);
|
|
225
239
|
}
|
|
226
240
|
}
|
|
227
|
-
|
|
241
|
+
/**
|
|
242
|
+
* @description 切换平整深度并同步到对应平整实例
|
|
243
|
+
* @param {Number} val 平整深度值
|
|
244
|
+
*/
|
|
228
245
|
setHeight(val) {
|
|
229
246
|
this._options.flatHeight = Number(val);
|
|
247
|
+
// 索引为-1时表示作用于全部平整实例
|
|
230
248
|
if (this.currentFlatPolygonIndex == -1) {
|
|
231
249
|
this._flatteningPolygonTex.setFlattenedPolygonHeight(-1, Number(val));
|
|
232
250
|
} else {
|
|
233
251
|
this._flatteningPolygonTex.setFlattenedPolygonHeight(this.currentFlatPolygonIndex, Number(val));
|
|
234
252
|
}
|
|
235
253
|
}
|
|
236
|
-
|
|
254
|
+
/**
|
|
255
|
+
* @description 切换辅助面显示状态
|
|
256
|
+
* @param {Boolean} val 是否显示
|
|
257
|
+
*/
|
|
237
258
|
setFlatteningShow(val) {
|
|
238
259
|
this._options.flatteningShow = val;
|
|
239
260
|
if (val) {
|
|
@@ -246,7 +267,10 @@ class ModelFlatViewModel {
|
|
|
246
267
|
});
|
|
247
268
|
}
|
|
248
269
|
}
|
|
249
|
-
|
|
270
|
+
/**
|
|
271
|
+
* @description 设置当前操作的平整实例索引
|
|
272
|
+
* @param {Number} val 平整实例索引
|
|
273
|
+
*/
|
|
250
274
|
setCurrentFlatPolygonIndex(val) {
|
|
251
275
|
this.currentFlatPolygonIndex = val;
|
|
252
276
|
}
|
|
@@ -258,11 +282,13 @@ class ModelFlatViewModel {
|
|
|
258
282
|
remove() {
|
|
259
283
|
this._flatteningPolygonTex && this._flatteningPolygonTex.removeAllFlattenedPolygon();
|
|
260
284
|
this._flatteningPolygonTex && this._flatteningPolygonTex.detachAllTileset();
|
|
285
|
+
// 移除所有辅助面
|
|
261
286
|
for (var i = 0; i < this._assistPolygons.length; i++) {
|
|
262
287
|
this._viewer.entities.remove(this._assistPolygons[i]);
|
|
263
288
|
}
|
|
264
289
|
this._assistPolygons = [];
|
|
265
290
|
var models = this._viewer.scene.primitives._primitives;
|
|
291
|
+
// 遍历所有3dtiles,取消平整并移除tileVisible监听
|
|
266
292
|
for (let i = 0; i < models.length; i++) {
|
|
267
293
|
if (models[i] instanceof Cesium.Cesium3DTileset && models[i]._url) {
|
|
268
294
|
if (!models[i].refresh) models[i]?.tileVisible?.removeEventListener(this.tileVisible);
|
|
@@ -345,6 +371,7 @@ const __default__ = {
|
|
|
345
371
|
};
|
|
346
372
|
var _default = exports.A = /*@__PURE__*/Object.assign(__default__, {
|
|
347
373
|
props: {
|
|
374
|
+
// 指定组件绑定的viewer对象的div的id
|
|
348
375
|
mapTarget: {
|
|
349
376
|
type: String
|
|
350
377
|
},
|
|
@@ -397,6 +424,8 @@ var _default = exports.A = /*@__PURE__*/Object.assign(__default__, {
|
|
|
397
424
|
|
|
398
425
|
// 获取组件传参
|
|
399
426
|
const props = __props;
|
|
427
|
+
|
|
428
|
+
// 表单数据对象
|
|
400
429
|
let formItem = (0, _vue.reactive)({
|
|
401
430
|
isFilterTilset: props?.settingParams?.isFilterTilset ?? true,
|
|
402
431
|
isCheckTilset: props?.settingParams?.isCheckTilset ?? false,
|
|
@@ -418,6 +447,7 @@ var _default = exports.A = /*@__PURE__*/Object.assign(__default__, {
|
|
|
418
447
|
// 生成组件默认header
|
|
419
448
|
let headerTemp = (0, _vue.ref)();
|
|
420
449
|
let headerTempRef = (0, _vue.ref)();
|
|
450
|
+
// 可选的3dtiles图层列表
|
|
421
451
|
let tiles = (0, _vue.ref)([]);
|
|
422
452
|
(0, _vue.onMounted)(() => {
|
|
423
453
|
(0, _util.updatePosition)(boxRef.value, props);
|
|
@@ -441,6 +471,9 @@ var _default = exports.A = /*@__PURE__*/Object.assign(__default__, {
|
|
|
441
471
|
callbackParams();
|
|
442
472
|
}, 500);
|
|
443
473
|
});
|
|
474
|
+
/**
|
|
475
|
+
* @description 回调函数:刷新可选图层列表,按需默认全选并同步给逻辑类
|
|
476
|
+
*/
|
|
444
477
|
function callbackParams() {
|
|
445
478
|
if (viewModel) {
|
|
446
479
|
tiles.value = viewModel?.findLayers?.() ?? []; // 获取所有tileset对象
|
|
@@ -448,7 +481,10 @@ var _default = exports.A = /*@__PURE__*/Object.assign(__default__, {
|
|
|
448
481
|
changeTilset(formItem.tileset);
|
|
449
482
|
}
|
|
450
483
|
}
|
|
451
|
-
|
|
484
|
+
/**
|
|
485
|
+
* @description 切换平整目标模型图层
|
|
486
|
+
* @param {Array} val 选中的tileset guid数组
|
|
487
|
+
*/
|
|
452
488
|
function changeTilset(val) {
|
|
453
489
|
viewModel.tiles = formItem?.tileset ?? [];
|
|
454
490
|
}
|
|
@@ -473,7 +509,10 @@ var _default = exports.A = /*@__PURE__*/Object.assign(__default__, {
|
|
|
473
509
|
function getFlatCount() {
|
|
474
510
|
return viewModel && viewModel.getFlatCount();
|
|
475
511
|
}
|
|
476
|
-
|
|
512
|
+
/**
|
|
513
|
+
* @description 设置当前操作的平整实例索引
|
|
514
|
+
* @param {Number} val 平整实例索引
|
|
515
|
+
*/
|
|
477
516
|
function setCurrentFlatPolygonIndex(val) {
|
|
478
517
|
viewModel && viewModel.setCurrentFlatPolygonIndex(val);
|
|
479
518
|
}
|
|
@@ -481,6 +520,7 @@ var _default = exports.A = /*@__PURE__*/Object.assign(__default__, {
|
|
|
481
520
|
function startOperation() {
|
|
482
521
|
viewModel && viewModel.start();
|
|
483
522
|
}
|
|
523
|
+
// 取消绘制
|
|
484
524
|
function cancel() {
|
|
485
525
|
viewModel && viewModel.cancel();
|
|
486
526
|
}
|
|
@@ -701,11 +741,11 @@ Object.defineProperty(exports, "__esModule", ({
|
|
|
701
741
|
value: true
|
|
702
742
|
}));
|
|
703
743
|
exports.kq_npm_client_leaflet_vue = exports.kq_npm_client_common_vue = exports.kq_npm_client3d_webgl_vue = void 0;
|
|
704
|
-
|
|
744
|
+
const kq_npm_client_common_vue = exports.kq_npm_client_common_vue = window.kq_npm_client_common_vue = window.kq_npm_client_common_vue || {};
|
|
705
745
|
__webpack_require__.g.kq_npm_client_common_vue = kq_npm_client_common_vue;
|
|
706
|
-
|
|
746
|
+
const kq_npm_client_leaflet_vue = exports.kq_npm_client_leaflet_vue = window.kq_npm_client_leaflet_vue = window.kq_npm_client_leaflet_vue || {};
|
|
707
747
|
__webpack_require__.g.kq_npm_client_leaflet_vue = kq_npm_client_leaflet_vue;
|
|
708
|
-
|
|
748
|
+
const kq_npm_client3d_webgl_vue = exports.kq_npm_client3d_webgl_vue = window.kq_npm_client3d_webgl_vue = window.kq_npm_client3d_webgl_vue || {};
|
|
709
749
|
__webpack_require__.g.kq_npm_client3d_webgl_vue = kq_npm_client3d_webgl_vue;
|
|
710
750
|
|
|
711
751
|
/***/ })
|
package/modeledit/index.js
CHANGED
|
@@ -31,16 +31,25 @@ var _useGlobalConfig = __webpack_require__(22686);
|
|
|
31
31
|
//模型平整逻辑类
|
|
32
32
|
|
|
33
33
|
class ModelEditViewModel {
|
|
34
|
+
//语言对象
|
|
35
|
+
/**
|
|
36
|
+
* @description 构造函数,初始化viewer、绘制管理对象及表单参数
|
|
37
|
+
* @param {Object} scenceView 三维场景视图对象
|
|
38
|
+
* @param {Object} formItem 表单参数对象
|
|
39
|
+
*/
|
|
34
40
|
constructor(scenceView, formItem) {
|
|
35
41
|
this._viewer = null;
|
|
36
42
|
//三维viewer对象
|
|
37
43
|
this._drawManager = null;
|
|
38
44
|
//绘制管理对象
|
|
39
45
|
this._modelEdit = null;
|
|
46
|
+
//当前编辑的模型对象
|
|
40
47
|
this._customAxis = null;
|
|
41
48
|
// 编辑类
|
|
42
49
|
this._option = null;
|
|
50
|
+
//表单参数对象
|
|
43
51
|
this._modelEdits = [];
|
|
52
|
+
//已加载的模型集合
|
|
44
53
|
this._language = {};
|
|
45
54
|
const {
|
|
46
55
|
locale
|
|
@@ -51,7 +60,10 @@ class ModelEditViewModel {
|
|
|
51
60
|
this._viewer.scene.globe.depthTestAgainstTerrain = true;
|
|
52
61
|
this._option = formItem;
|
|
53
62
|
}
|
|
54
|
-
|
|
63
|
+
/**
|
|
64
|
+
* @description 开始分析:根据传入的模型URL通过绘制点选择位置加载gltf模型并挂载自定义编辑轴
|
|
65
|
+
* @param {String} url 模型文件路径
|
|
66
|
+
*/
|
|
55
67
|
start(url) {
|
|
56
68
|
let that = this;
|
|
57
69
|
// this.clear();
|
|
@@ -61,6 +73,7 @@ class ModelEditViewModel {
|
|
|
61
73
|
}, (feature, {
|
|
62
74
|
shape
|
|
63
75
|
}) => {
|
|
76
|
+
// 过滤非本组件绘制的图形
|
|
64
77
|
if (!shape.groupName || shape.groupName !== "ModelEditDraw") return;
|
|
65
78
|
that._drawManager.clearDrawGroup("ModelEditDraw");
|
|
66
79
|
if (shape._position) {
|
|
@@ -76,10 +89,12 @@ class ModelEditViewModel {
|
|
|
76
89
|
scale: that?._option?.modelScale ?? 80
|
|
77
90
|
}));
|
|
78
91
|
that._modelEdits.push(that._modelEdit);
|
|
92
|
+
// 若已存在编辑轴,先移除监听并销毁
|
|
79
93
|
if (that._customAxis) {
|
|
80
94
|
that._customAxis?.removeListener?.(); //移除监听
|
|
81
95
|
that._customAxis?.destroy?.();
|
|
82
96
|
}
|
|
97
|
+
// 模型加载完成后创建自定义编辑轴并添加监听
|
|
83
98
|
that._modelEdit.readyPromise.then(function (model) {
|
|
84
99
|
that._customAxis = new Cesium.Kq3dCustomAxis(that._viewer, model);
|
|
85
100
|
that._customAxis.addListener(); //添加监听
|
|
@@ -88,20 +103,27 @@ class ModelEditViewModel {
|
|
|
88
103
|
}
|
|
89
104
|
}, "ModelEditDraw");
|
|
90
105
|
} else {
|
|
106
|
+
// 未传入模型路径时给出提示
|
|
91
107
|
(0, _message.default)({
|
|
92
108
|
message: that._language.value.webgl["modelPathTips"],
|
|
93
109
|
type: "info"
|
|
94
110
|
});
|
|
95
111
|
}
|
|
96
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* @description 设置当前可编辑的模型对象并为其挂载自定义编辑轴
|
|
115
|
+
* @param {Object} val 模型对象
|
|
116
|
+
*/
|
|
97
117
|
setEditModel(val) {
|
|
98
118
|
let that = this;
|
|
99
119
|
that._modelEdit = val;
|
|
100
120
|
that._modelEdits.push(that._modelEdit);
|
|
121
|
+
// 若已存在编辑轴,先移除监听并销毁
|
|
101
122
|
if (that._customAxis) {
|
|
102
123
|
that._customAxis?.removeListener?.(); //移除监听
|
|
103
124
|
that._customAxis?.destroy?.();
|
|
104
125
|
}
|
|
126
|
+
// 模型加载完成后创建自定义编辑轴并添加监听
|
|
105
127
|
that._modelEdit?.readyPromise?.then?.(function (model) {
|
|
106
128
|
that._customAxis = new Cesium.Kq3dCustomAxis(that._viewer, model);
|
|
107
129
|
that._customAxis.addListener(); //添加监听
|
|
@@ -122,6 +144,7 @@ class ModelEditViewModel {
|
|
|
122
144
|
}
|
|
123
145
|
// 清除
|
|
124
146
|
clear() {
|
|
147
|
+
// 遍历移除所有已加载的模型
|
|
125
148
|
for (let i = 0; i < this._modelEdits.length; i++) {
|
|
126
149
|
if (this._modelEdits[i]) {
|
|
127
150
|
this._viewer.scene.primitives.remove(this._modelEdits[i]);
|
|
@@ -285,6 +308,7 @@ const __default__ = {
|
|
|
285
308
|
};
|
|
286
309
|
var _default = exports.A = /*@__PURE__*/Object.assign(__default__, {
|
|
287
310
|
props: {
|
|
311
|
+
// 指定组件绑定的viewer对象的div的id
|
|
288
312
|
mapTarget: {
|
|
289
313
|
type: String
|
|
290
314
|
},
|
|
@@ -338,6 +362,8 @@ var _default = exports.A = /*@__PURE__*/Object.assign(__default__, {
|
|
|
338
362
|
|
|
339
363
|
// 获取组件传参
|
|
340
364
|
const props = __props;
|
|
365
|
+
|
|
366
|
+
// 表单数据对象
|
|
341
367
|
let formItem = (0, _vue.reactive)({
|
|
342
368
|
modelPath: props?.settingParams?.modelPath ?? "",
|
|
343
369
|
isScaleFile: props?.settingParams?.isScaleFile ?? false,
|
|
@@ -383,6 +409,10 @@ var _default = exports.A = /*@__PURE__*/Object.assign(__default__, {
|
|
|
383
409
|
headerTemp.value = (0, _util.createHeaderTemp)(boxRef.value, (0, _vue.toRefs)(props), headerTempRef, "webgl.modelEditTitle");
|
|
384
410
|
}
|
|
385
411
|
};
|
|
412
|
+
/**
|
|
413
|
+
* @description 选择本地模型文件并生成可访问的本地路径
|
|
414
|
+
* @param {Object} file 上传文件对象
|
|
415
|
+
*/
|
|
386
416
|
function selectModel(file) {
|
|
387
417
|
formItem.modelPath = URL.createObjectURL(file.raw);
|
|
388
418
|
}
|
|
@@ -416,6 +446,10 @@ var _default = exports.A = /*@__PURE__*/Object.assign(__default__, {
|
|
|
416
446
|
Object.assign(viewModel._option, formItem);
|
|
417
447
|
}
|
|
418
448
|
}
|
|
449
|
+
/**
|
|
450
|
+
* @description 设置当前可编辑的模型对象
|
|
451
|
+
* @param {Object} val 模型对象
|
|
452
|
+
*/
|
|
419
453
|
function setEditModel(val) {
|
|
420
454
|
viewModel && viewModel.setEditModel(val);
|
|
421
455
|
}
|
|
@@ -620,11 +654,11 @@ Object.defineProperty(exports, "__esModule", ({
|
|
|
620
654
|
value: true
|
|
621
655
|
}));
|
|
622
656
|
exports.kq_npm_client_leaflet_vue = exports.kq_npm_client_common_vue = exports.kq_npm_client3d_webgl_vue = void 0;
|
|
623
|
-
|
|
657
|
+
const kq_npm_client_common_vue = exports.kq_npm_client_common_vue = window.kq_npm_client_common_vue = window.kq_npm_client_common_vue || {};
|
|
624
658
|
__webpack_require__.g.kq_npm_client_common_vue = kq_npm_client_common_vue;
|
|
625
|
-
|
|
659
|
+
const kq_npm_client_leaflet_vue = exports.kq_npm_client_leaflet_vue = window.kq_npm_client_leaflet_vue = window.kq_npm_client_leaflet_vue || {};
|
|
626
660
|
__webpack_require__.g.kq_npm_client_leaflet_vue = kq_npm_client_leaflet_vue;
|
|
627
|
-
|
|
661
|
+
const kq_npm_client3d_webgl_vue = exports.kq_npm_client3d_webgl_vue = window.kq_npm_client3d_webgl_vue = window.kq_npm_client3d_webgl_vue || {};
|
|
628
662
|
__webpack_require__.g.kq_npm_client3d_webgl_vue = kq_npm_client3d_webgl_vue;
|
|
629
663
|
|
|
630
664
|
/***/ })
|