@kq_npm/client3d_webgl_vue 4.0.6-beta → 4.0.8-beta
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 +75 -20
- package/baseterraingallery/index.js +3 -2
- package/index.js +92 -31
- package/package.json +1 -1
- package/scenceview/index.js +92 -31
package/adddata/index.js
CHANGED
|
@@ -742,8 +742,11 @@ class AddDataViewModel {
|
|
|
742
742
|
break;
|
|
743
743
|
|
|
744
744
|
case "kqgis3dserver":
|
|
745
|
+
var geojsonStyle0 = { ...this._geojsonStyle
|
|
746
|
+
};
|
|
747
|
+
|
|
745
748
|
this._viewer.addKq3dServerLayerGroupExt(url, {
|
|
746
|
-
|
|
749
|
+
geojsonStyle: geojsonStyle0
|
|
747
750
|
}).then(group => {
|
|
748
751
|
var layers = group._addedLayers || group._layers;
|
|
749
752
|
|
|
@@ -756,12 +759,13 @@ class AddDataViewModel {
|
|
|
756
759
|
};
|
|
757
760
|
var serverType = "";
|
|
758
761
|
var addType = "";
|
|
762
|
+
let promiseList = [];
|
|
759
763
|
|
|
760
764
|
for (var i = 0; i < layers.length; i++) {
|
|
761
765
|
if (layers[i] instanceof Cesium.Cesium3DTileset) {
|
|
762
766
|
serverType = "3dtiles";
|
|
763
767
|
addType = "3dtiles";
|
|
764
|
-
url = layers[i].
|
|
768
|
+
url = layers[i]._originUrl;
|
|
765
769
|
} else if (layers[i] instanceof Cesium.ImageryLayer) {
|
|
766
770
|
serverType = "imagerylayer";
|
|
767
771
|
addType = "kq3dimageryfile";
|
|
@@ -769,41 +773,85 @@ class AddDataViewModel {
|
|
|
769
773
|
} else if (layers[i] instanceof Cesium.Kq3dFileTerrainProvider) {
|
|
770
774
|
serverType = "terrainprovider";
|
|
771
775
|
addType = "obterrain";
|
|
772
|
-
url = layers[i].
|
|
776
|
+
url = layers[i]._originUrl + layers[i]._urlPramas;
|
|
773
777
|
|
|
774
778
|
this._layerManager._terrainProviders.push(layers[i]);
|
|
775
779
|
} else if (layers[i] instanceof Cesium.CesiumTerrainProvider) {
|
|
776
780
|
serverType = "terrainprovider";
|
|
777
781
|
addType = "stkterrain";
|
|
778
|
-
url = layers[i].
|
|
782
|
+
url = layers[i]._originUrl;
|
|
779
783
|
|
|
780
784
|
this._layerManager._terrainProviders.push(layers[i]);
|
|
781
785
|
} else if (layers[i] instanceof Cesium.Kq3dGeoJsonDataSource) {
|
|
782
786
|
serverType = "datasource";
|
|
783
787
|
addType = "geojson";
|
|
784
|
-
url = layers[i].
|
|
788
|
+
url = layers[i]._url;
|
|
789
|
+
let promise = new Promise(resolve => {
|
|
790
|
+
layers[i].loadingEvent.addEventListener(function (ds) {
|
|
791
|
+
// 绘制面边框
|
|
792
|
+
ds.entities.values.forEach(entity => {
|
|
793
|
+
if (entity.polygon) {
|
|
794
|
+
entity.polyline = {
|
|
795
|
+
positions: entity.polygon.hierarchy._value.positions,
|
|
796
|
+
width: geojsonStyle0.polygon.outlineWidth,
|
|
797
|
+
material: geojsonStyle0.polygon.outlineColor
|
|
798
|
+
};
|
|
799
|
+
}
|
|
800
|
+
});
|
|
801
|
+
let shapeType = ""; // 判断geojson点线面类型
|
|
802
|
+
|
|
803
|
+
if (ds.entities.values.length > 0) {
|
|
804
|
+
let entity = ds.entities.values[0];
|
|
805
|
+
|
|
806
|
+
if (entity.polygon) {
|
|
807
|
+
shapeType = 'polygon';
|
|
808
|
+
} else if (entity.polyline) {
|
|
809
|
+
shapeType = 'polyline';
|
|
810
|
+
} else if (entity.billboard || entity.point) {
|
|
811
|
+
shapeType = 'point';
|
|
812
|
+
}
|
|
813
|
+
}
|
|
814
|
+
|
|
815
|
+
let dsChild = {
|
|
816
|
+
guid: ds.guid,
|
|
817
|
+
name: ds._name,
|
|
818
|
+
visible: true,
|
|
819
|
+
serverType: serverType,
|
|
820
|
+
url: url,
|
|
821
|
+
addType: 'geojson',
|
|
822
|
+
shapeType: shapeType
|
|
823
|
+
};
|
|
824
|
+
node.children.push(dsChild);
|
|
825
|
+
resolve(true);
|
|
826
|
+
});
|
|
827
|
+
});
|
|
828
|
+
promiseList.push(promise);
|
|
785
829
|
} else if (layers[i] instanceof Cesium.Kq3dS3MTilesLayer) {
|
|
786
|
-
serverType = "
|
|
830
|
+
serverType = "3dtiles";
|
|
787
831
|
addType = "s3m";
|
|
788
832
|
url = layers[i]._url;
|
|
789
833
|
}
|
|
790
834
|
|
|
791
|
-
if (
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
835
|
+
if (serverType !== "datasource") {
|
|
836
|
+
if (!layers[i].guid) layers[i].guid = Cesium.createGuid();
|
|
837
|
+
node.children.push({
|
|
838
|
+
guid: layers[i].guid,
|
|
839
|
+
name: layers[i].name || layers[i]._name,
|
|
840
|
+
visible: true,
|
|
841
|
+
serverType: serverType,
|
|
842
|
+
url: url,
|
|
843
|
+
addType: addType
|
|
844
|
+
});
|
|
845
|
+
}
|
|
800
846
|
}
|
|
801
847
|
|
|
802
|
-
|
|
848
|
+
Promise.all(promiseList).then(() => {
|
|
849
|
+
this.flyToLayer(layers[0]);
|
|
803
850
|
|
|
804
|
-
|
|
851
|
+
this._layerManager.addTempLayerNode(node);
|
|
805
852
|
|
|
806
|
-
|
|
853
|
+
cb && cb(node);
|
|
854
|
+
});
|
|
807
855
|
}
|
|
808
856
|
});
|
|
809
857
|
|
|
@@ -954,7 +1002,9 @@ class AddDataViewModel {
|
|
|
954
1002
|
case "arcgismapserver":
|
|
955
1003
|
layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dArcGISMapServerImageryProvider({
|
|
956
1004
|
name: name,
|
|
957
|
-
url: url
|
|
1005
|
+
url: url,
|
|
1006
|
+
usePreCachedTilesIfAvailable: false //使用export请求可支持自定义比例尺
|
|
1007
|
+
|
|
958
1008
|
}));
|
|
959
1009
|
this.flyToLayer(layer);
|
|
960
1010
|
node = {
|
|
@@ -1315,7 +1365,12 @@ class AddDataViewModel {
|
|
|
1315
1365
|
destination: tileset.rectangle
|
|
1316
1366
|
});
|
|
1317
1367
|
});
|
|
1318
|
-
} else if (layer instanceof Cesium.GeoJsonDataSource || layer instanceof Cesium.Kq3dGeoJsonDataSource
|
|
1368
|
+
} else if (layer instanceof Cesium.GeoJsonDataSource || layer instanceof Cesium.Kq3dGeoJsonDataSource) {
|
|
1369
|
+
let offset = new Cesium.HeadingPitchRange(0, Cesium.Math.toRadians(-90), 0);
|
|
1370
|
+
viewer.flyTo(layer, {
|
|
1371
|
+
offset
|
|
1372
|
+
});
|
|
1373
|
+
} else if (layer instanceof Cesium.KmlDataSource || layer instanceof Cesium.CzmlDataSource) {
|
|
1319
1374
|
viewer.flyTo(layer);
|
|
1320
1375
|
} else if (layer instanceof Cesium.Kq3dKQGISServerTerrainProvider || layer instanceof Cesium.Kq3dFileTerrainProvider || layer instanceof Cesium.CesiumTerrainProvider) {
|
|
1321
1376
|
layer.getViewableRectangle().then(function (rectangle) {
|
|
@@ -363,8 +363,9 @@ const __default__ = {
|
|
|
363
363
|
gis_utils_.utils.getWebMap(null, scenceView => {
|
|
364
364
|
if (scenceView) {
|
|
365
365
|
changSelectTerrain();
|
|
366
|
-
viewModel = new BaseterrainGalleryViewModel/* default */.Z(scenceView._viewer);
|
|
367
|
-
|
|
366
|
+
viewModel = new BaseterrainGalleryViewModel/* default */.Z(scenceView._viewer); // 初始化无地形时不需要设置地形, 如果将地形设置为无地形可能会影响其他功能添加的地形
|
|
367
|
+
|
|
368
|
+
if (currentIndex.value != 2) viewModel.setTerrainType(currentIndex.value);
|
|
368
369
|
}
|
|
369
370
|
});
|
|
370
371
|
});
|
package/index.js
CHANGED
|
@@ -1069,10 +1069,6 @@ class DrawManager {
|
|
|
1069
1069
|
delete style.billboard;
|
|
1070
1070
|
}
|
|
1071
1071
|
|
|
1072
|
-
if (geojsonData.type === "Feature") {
|
|
1073
|
-
geojsonData.properties = geojsonData.properties || {};
|
|
1074
|
-
}
|
|
1075
|
-
|
|
1076
1072
|
this._viewer.scene.globe.depthTestAgainstTerrain = false;
|
|
1077
1073
|
|
|
1078
1074
|
let geojsonDs = this._viewer.dataSources.getByName(idCustom);
|
|
@@ -1107,8 +1103,11 @@ class DrawManager {
|
|
|
1107
1103
|
}
|
|
1108
1104
|
|
|
1109
1105
|
if (isLocation) {
|
|
1106
|
+
let offset = new Cesium.HeadingPitchRange(0, Cesium.Math.toRadians(-90), 0);
|
|
1107
|
+
|
|
1110
1108
|
that._viewer.flyTo(ds, {
|
|
1111
|
-
duration: 1.5
|
|
1109
|
+
duration: 1.5,
|
|
1110
|
+
offset
|
|
1112
1111
|
});
|
|
1113
1112
|
}
|
|
1114
1113
|
|
|
@@ -2122,7 +2121,7 @@ class LayerManager {
|
|
|
2122
2121
|
|
|
2123
2122
|
case "s3m":
|
|
2124
2123
|
layerData.visible = isAdd;
|
|
2125
|
-
layerData.serverType = "
|
|
2124
|
+
layerData.serverType = "3dtiles";
|
|
2126
2125
|
|
|
2127
2126
|
if (isAdd) {
|
|
2128
2127
|
layer = this._viewer.scene.primitives.add(new Cesium.Kq3dS3MTilesLayer({
|
|
@@ -2167,6 +2166,9 @@ class LayerManager {
|
|
|
2167
2166
|
serverType = "datasource";
|
|
2168
2167
|
layer.show = isAdd;
|
|
2169
2168
|
layerData.shapeType = that.getShapeType(layer);
|
|
2169
|
+
} else if (layer instanceof Cesium.Kq3dS3MTilesLayer) {
|
|
2170
|
+
serverType = "3dtiles";
|
|
2171
|
+
layer.show = isAdd;
|
|
2170
2172
|
}
|
|
2171
2173
|
|
|
2172
2174
|
layer._guid = layerData.guid;
|
|
@@ -2234,6 +2236,8 @@ class LayerManager {
|
|
|
2234
2236
|
name: name,
|
|
2235
2237
|
url: url,
|
|
2236
2238
|
layers: layerData.id + "",
|
|
2239
|
+
usePreCachedTilesIfAvailable: false,
|
|
2240
|
+
//使用export请求可支持自定义比例尺
|
|
2237
2241
|
...params
|
|
2238
2242
|
}));
|
|
2239
2243
|
layer._guid = layerData.guid;
|
|
@@ -2281,7 +2285,8 @@ class LayerManager {
|
|
|
2281
2285
|
|
|
2282
2286
|
case "wms":
|
|
2283
2287
|
//配置id时只能是单个图层
|
|
2284
|
-
if (layerData.rect84) {
|
|
2288
|
+
if (layerData.rect84 && layerData.sourceType !== "service") {
|
|
2289
|
+
// 大数据wms服务使用
|
|
2285
2290
|
layerData.visible = isAdd;
|
|
2286
2291
|
layerData.serverType = "imagerylayer";
|
|
2287
2292
|
|
|
@@ -2321,7 +2326,7 @@ class LayerManager {
|
|
|
2321
2326
|
layerData.serverType = "imagerylayer";
|
|
2322
2327
|
|
|
2323
2328
|
if (isAdd) {
|
|
2324
|
-
promise = this._viewer.addWMSLayerGroup(url, {
|
|
2329
|
+
promise = this._viewer.addWMSLayerGroup(url, { ...params,
|
|
2325
2330
|
layers: layerData.id + ""
|
|
2326
2331
|
}).then(group => {
|
|
2327
2332
|
var layers = group._addedLayers || group._layers;
|
|
@@ -2359,7 +2364,7 @@ class LayerManager {
|
|
|
2359
2364
|
layerData.serverType = "imagerylayer"; //配置id时只能是单个图层
|
|
2360
2365
|
|
|
2361
2366
|
if (isAdd) {
|
|
2362
|
-
promise = this._viewer.addWMTSLayerGroup(url, {
|
|
2367
|
+
promise = this._viewer.addWMTSLayerGroup(url, { ...params,
|
|
2363
2368
|
layers: layerData.id + ""
|
|
2364
2369
|
}).then(group => {
|
|
2365
2370
|
var layers = group._addedLayers || group._layers;
|
|
@@ -7004,8 +7009,9 @@ const BaseterrainGalleryvue_type_script_setup_true_lang_js_default_ = {
|
|
|
7004
7009
|
gis_utils_namespaceObject.utils.getWebMap(null, scenceView => {
|
|
7005
7010
|
if (scenceView) {
|
|
7006
7011
|
changSelectTerrain();
|
|
7007
|
-
viewModel = new BaseterrainGalleryViewModel(scenceView._viewer);
|
|
7008
|
-
|
|
7012
|
+
viewModel = new BaseterrainGalleryViewModel(scenceView._viewer); // 初始化无地形时不需要设置地形, 如果将地形设置为无地形可能会影响其他功能添加的地形
|
|
7013
|
+
|
|
7014
|
+
if (currentIndex.value != 2) viewModel.setTerrainType(currentIndex.value);
|
|
7009
7015
|
}
|
|
7010
7016
|
});
|
|
7011
7017
|
});
|
|
@@ -27018,8 +27024,11 @@ class AddDataViewModel {
|
|
|
27018
27024
|
break;
|
|
27019
27025
|
|
|
27020
27026
|
case "kqgis3dserver":
|
|
27027
|
+
var geojsonStyle0 = { ...this._geojsonStyle
|
|
27028
|
+
};
|
|
27029
|
+
|
|
27021
27030
|
this._viewer.addKq3dServerLayerGroupExt(url, {
|
|
27022
|
-
|
|
27031
|
+
geojsonStyle: geojsonStyle0
|
|
27023
27032
|
}).then(group => {
|
|
27024
27033
|
var layers = group._addedLayers || group._layers;
|
|
27025
27034
|
|
|
@@ -27032,12 +27041,13 @@ class AddDataViewModel {
|
|
|
27032
27041
|
};
|
|
27033
27042
|
var serverType = "";
|
|
27034
27043
|
var addType = "";
|
|
27044
|
+
let promiseList = [];
|
|
27035
27045
|
|
|
27036
27046
|
for (var i = 0; i < layers.length; i++) {
|
|
27037
27047
|
if (layers[i] instanceof Cesium.Cesium3DTileset) {
|
|
27038
27048
|
serverType = "3dtiles";
|
|
27039
27049
|
addType = "3dtiles";
|
|
27040
|
-
url = layers[i].
|
|
27050
|
+
url = layers[i]._originUrl;
|
|
27041
27051
|
} else if (layers[i] instanceof Cesium.ImageryLayer) {
|
|
27042
27052
|
serverType = "imagerylayer";
|
|
27043
27053
|
addType = "kq3dimageryfile";
|
|
@@ -27045,41 +27055,85 @@ class AddDataViewModel {
|
|
|
27045
27055
|
} else if (layers[i] instanceof Cesium.Kq3dFileTerrainProvider) {
|
|
27046
27056
|
serverType = "terrainprovider";
|
|
27047
27057
|
addType = "obterrain";
|
|
27048
|
-
url = layers[i].
|
|
27058
|
+
url = layers[i]._originUrl + layers[i]._urlPramas;
|
|
27049
27059
|
|
|
27050
27060
|
this._layerManager._terrainProviders.push(layers[i]);
|
|
27051
27061
|
} else if (layers[i] instanceof Cesium.CesiumTerrainProvider) {
|
|
27052
27062
|
serverType = "terrainprovider";
|
|
27053
27063
|
addType = "stkterrain";
|
|
27054
|
-
url = layers[i].
|
|
27064
|
+
url = layers[i]._originUrl;
|
|
27055
27065
|
|
|
27056
27066
|
this._layerManager._terrainProviders.push(layers[i]);
|
|
27057
27067
|
} else if (layers[i] instanceof Cesium.Kq3dGeoJsonDataSource) {
|
|
27058
27068
|
serverType = "datasource";
|
|
27059
27069
|
addType = "geojson";
|
|
27060
|
-
url = layers[i].
|
|
27070
|
+
url = layers[i]._url;
|
|
27071
|
+
let promise = new Promise(resolve => {
|
|
27072
|
+
layers[i].loadingEvent.addEventListener(function (ds) {
|
|
27073
|
+
// 绘制面边框
|
|
27074
|
+
ds.entities.values.forEach(entity => {
|
|
27075
|
+
if (entity.polygon) {
|
|
27076
|
+
entity.polyline = {
|
|
27077
|
+
positions: entity.polygon.hierarchy._value.positions,
|
|
27078
|
+
width: geojsonStyle0.polygon.outlineWidth,
|
|
27079
|
+
material: geojsonStyle0.polygon.outlineColor
|
|
27080
|
+
};
|
|
27081
|
+
}
|
|
27082
|
+
});
|
|
27083
|
+
let shapeType = ""; // 判断geojson点线面类型
|
|
27084
|
+
|
|
27085
|
+
if (ds.entities.values.length > 0) {
|
|
27086
|
+
let entity = ds.entities.values[0];
|
|
27087
|
+
|
|
27088
|
+
if (entity.polygon) {
|
|
27089
|
+
shapeType = 'polygon';
|
|
27090
|
+
} else if (entity.polyline) {
|
|
27091
|
+
shapeType = 'polyline';
|
|
27092
|
+
} else if (entity.billboard || entity.point) {
|
|
27093
|
+
shapeType = 'point';
|
|
27094
|
+
}
|
|
27095
|
+
}
|
|
27096
|
+
|
|
27097
|
+
let dsChild = {
|
|
27098
|
+
guid: ds.guid,
|
|
27099
|
+
name: ds._name,
|
|
27100
|
+
visible: true,
|
|
27101
|
+
serverType: serverType,
|
|
27102
|
+
url: url,
|
|
27103
|
+
addType: 'geojson',
|
|
27104
|
+
shapeType: shapeType
|
|
27105
|
+
};
|
|
27106
|
+
node.children.push(dsChild);
|
|
27107
|
+
resolve(true);
|
|
27108
|
+
});
|
|
27109
|
+
});
|
|
27110
|
+
promiseList.push(promise);
|
|
27061
27111
|
} else if (layers[i] instanceof Cesium.Kq3dS3MTilesLayer) {
|
|
27062
|
-
serverType = "
|
|
27112
|
+
serverType = "3dtiles";
|
|
27063
27113
|
addType = "s3m";
|
|
27064
27114
|
url = layers[i]._url;
|
|
27065
27115
|
}
|
|
27066
27116
|
|
|
27067
|
-
if (
|
|
27068
|
-
|
|
27069
|
-
|
|
27070
|
-
|
|
27071
|
-
|
|
27072
|
-
|
|
27073
|
-
|
|
27074
|
-
|
|
27075
|
-
|
|
27117
|
+
if (serverType !== "datasource") {
|
|
27118
|
+
if (!layers[i].guid) layers[i].guid = Cesium.createGuid();
|
|
27119
|
+
node.children.push({
|
|
27120
|
+
guid: layers[i].guid,
|
|
27121
|
+
name: layers[i].name || layers[i]._name,
|
|
27122
|
+
visible: true,
|
|
27123
|
+
serverType: serverType,
|
|
27124
|
+
url: url,
|
|
27125
|
+
addType: addType
|
|
27126
|
+
});
|
|
27127
|
+
}
|
|
27076
27128
|
}
|
|
27077
27129
|
|
|
27078
|
-
|
|
27130
|
+
Promise.all(promiseList).then(() => {
|
|
27131
|
+
this.flyToLayer(layers[0]);
|
|
27079
27132
|
|
|
27080
|
-
|
|
27133
|
+
this._layerManager.addTempLayerNode(node);
|
|
27081
27134
|
|
|
27082
|
-
|
|
27135
|
+
cb && cb(node);
|
|
27136
|
+
});
|
|
27083
27137
|
}
|
|
27084
27138
|
});
|
|
27085
27139
|
|
|
@@ -27230,7 +27284,9 @@ class AddDataViewModel {
|
|
|
27230
27284
|
case "arcgismapserver":
|
|
27231
27285
|
layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dArcGISMapServerImageryProvider({
|
|
27232
27286
|
name: name,
|
|
27233
|
-
url: url
|
|
27287
|
+
url: url,
|
|
27288
|
+
usePreCachedTilesIfAvailable: false //使用export请求可支持自定义比例尺
|
|
27289
|
+
|
|
27234
27290
|
}));
|
|
27235
27291
|
this.flyToLayer(layer);
|
|
27236
27292
|
node = {
|
|
@@ -27591,7 +27647,12 @@ class AddDataViewModel {
|
|
|
27591
27647
|
destination: tileset.rectangle
|
|
27592
27648
|
});
|
|
27593
27649
|
});
|
|
27594
|
-
} else if (layer instanceof Cesium.GeoJsonDataSource || layer instanceof Cesium.Kq3dGeoJsonDataSource
|
|
27650
|
+
} else if (layer instanceof Cesium.GeoJsonDataSource || layer instanceof Cesium.Kq3dGeoJsonDataSource) {
|
|
27651
|
+
let offset = new Cesium.HeadingPitchRange(0, Cesium.Math.toRadians(-90), 0);
|
|
27652
|
+
viewer.flyTo(layer, {
|
|
27653
|
+
offset
|
|
27654
|
+
});
|
|
27655
|
+
} else if (layer instanceof Cesium.KmlDataSource || layer instanceof Cesium.CzmlDataSource) {
|
|
27595
27656
|
viewer.flyTo(layer);
|
|
27596
27657
|
} else if (layer instanceof Cesium.Kq3dKQGISServerTerrainProvider || layer instanceof Cesium.Kq3dFileTerrainProvider || layer instanceof Cesium.CesiumTerrainProvider) {
|
|
27597
27658
|
layer.getViewableRectangle().then(function (rectangle) {
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@kq_npm/client3d_webgl_vue","description":"KQGIS Client3D for Vue.js","version":"4.0.
|
|
1
|
+
{"name":"@kq_npm/client3d_webgl_vue","description":"KQGIS Client3D for Vue.js","version":"4.0.8-beta","homepage":"","keywords":["KQGIS","webGL","Vue"],"restrictedVersion":true,"browserslist":["> 1%","last 2 versions","not dead","not ie 11"],"author":"KQWEB GROUP","license":"Apache-2.0","dependencies":{"colorcolor":"1.1.1","echarts":"5.3.0","echarts-stat":"1.2.0","js-cookie":"3.0.1","omit.js":"2.0.2","save":"2.5.0","tinycolor2":"1.4.2","vue-i18n":"9.2.0-beta.36","xlsx":"0.18.5","css-vars-ponyfill":"2.4.8","html2canvas":"1.4.1","xe-utils":"3.5.4"}}
|
package/scenceview/index.js
CHANGED
|
@@ -652,8 +652,11 @@ class AddDataViewModel {
|
|
|
652
652
|
break;
|
|
653
653
|
|
|
654
654
|
case "kqgis3dserver":
|
|
655
|
+
var geojsonStyle0 = { ...this._geojsonStyle
|
|
656
|
+
};
|
|
657
|
+
|
|
655
658
|
this._viewer.addKq3dServerLayerGroupExt(url, {
|
|
656
|
-
|
|
659
|
+
geojsonStyle: geojsonStyle0
|
|
657
660
|
}).then(group => {
|
|
658
661
|
var layers = group._addedLayers || group._layers;
|
|
659
662
|
|
|
@@ -666,12 +669,13 @@ class AddDataViewModel {
|
|
|
666
669
|
};
|
|
667
670
|
var serverType = "";
|
|
668
671
|
var addType = "";
|
|
672
|
+
let promiseList = [];
|
|
669
673
|
|
|
670
674
|
for (var i = 0; i < layers.length; i++) {
|
|
671
675
|
if (layers[i] instanceof Cesium.Cesium3DTileset) {
|
|
672
676
|
serverType = "3dtiles";
|
|
673
677
|
addType = "3dtiles";
|
|
674
|
-
url = layers[i].
|
|
678
|
+
url = layers[i]._originUrl;
|
|
675
679
|
} else if (layers[i] instanceof Cesium.ImageryLayer) {
|
|
676
680
|
serverType = "imagerylayer";
|
|
677
681
|
addType = "kq3dimageryfile";
|
|
@@ -679,41 +683,85 @@ class AddDataViewModel {
|
|
|
679
683
|
} else if (layers[i] instanceof Cesium.Kq3dFileTerrainProvider) {
|
|
680
684
|
serverType = "terrainprovider";
|
|
681
685
|
addType = "obterrain";
|
|
682
|
-
url = layers[i].
|
|
686
|
+
url = layers[i]._originUrl + layers[i]._urlPramas;
|
|
683
687
|
|
|
684
688
|
this._layerManager._terrainProviders.push(layers[i]);
|
|
685
689
|
} else if (layers[i] instanceof Cesium.CesiumTerrainProvider) {
|
|
686
690
|
serverType = "terrainprovider";
|
|
687
691
|
addType = "stkterrain";
|
|
688
|
-
url = layers[i].
|
|
692
|
+
url = layers[i]._originUrl;
|
|
689
693
|
|
|
690
694
|
this._layerManager._terrainProviders.push(layers[i]);
|
|
691
695
|
} else if (layers[i] instanceof Cesium.Kq3dGeoJsonDataSource) {
|
|
692
696
|
serverType = "datasource";
|
|
693
697
|
addType = "geojson";
|
|
694
|
-
url = layers[i].
|
|
698
|
+
url = layers[i]._url;
|
|
699
|
+
let promise = new Promise(resolve => {
|
|
700
|
+
layers[i].loadingEvent.addEventListener(function (ds) {
|
|
701
|
+
// 绘制面边框
|
|
702
|
+
ds.entities.values.forEach(entity => {
|
|
703
|
+
if (entity.polygon) {
|
|
704
|
+
entity.polyline = {
|
|
705
|
+
positions: entity.polygon.hierarchy._value.positions,
|
|
706
|
+
width: geojsonStyle0.polygon.outlineWidth,
|
|
707
|
+
material: geojsonStyle0.polygon.outlineColor
|
|
708
|
+
};
|
|
709
|
+
}
|
|
710
|
+
});
|
|
711
|
+
let shapeType = ""; // 判断geojson点线面类型
|
|
712
|
+
|
|
713
|
+
if (ds.entities.values.length > 0) {
|
|
714
|
+
let entity = ds.entities.values[0];
|
|
715
|
+
|
|
716
|
+
if (entity.polygon) {
|
|
717
|
+
shapeType = 'polygon';
|
|
718
|
+
} else if (entity.polyline) {
|
|
719
|
+
shapeType = 'polyline';
|
|
720
|
+
} else if (entity.billboard || entity.point) {
|
|
721
|
+
shapeType = 'point';
|
|
722
|
+
}
|
|
723
|
+
}
|
|
724
|
+
|
|
725
|
+
let dsChild = {
|
|
726
|
+
guid: ds.guid,
|
|
727
|
+
name: ds._name,
|
|
728
|
+
visible: true,
|
|
729
|
+
serverType: serverType,
|
|
730
|
+
url: url,
|
|
731
|
+
addType: 'geojson',
|
|
732
|
+
shapeType: shapeType
|
|
733
|
+
};
|
|
734
|
+
node.children.push(dsChild);
|
|
735
|
+
resolve(true);
|
|
736
|
+
});
|
|
737
|
+
});
|
|
738
|
+
promiseList.push(promise);
|
|
695
739
|
} else if (layers[i] instanceof Cesium.Kq3dS3MTilesLayer) {
|
|
696
|
-
serverType = "
|
|
740
|
+
serverType = "3dtiles";
|
|
697
741
|
addType = "s3m";
|
|
698
742
|
url = layers[i]._url;
|
|
699
743
|
}
|
|
700
744
|
|
|
701
|
-
if (
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
745
|
+
if (serverType !== "datasource") {
|
|
746
|
+
if (!layers[i].guid) layers[i].guid = Cesium.createGuid();
|
|
747
|
+
node.children.push({
|
|
748
|
+
guid: layers[i].guid,
|
|
749
|
+
name: layers[i].name || layers[i]._name,
|
|
750
|
+
visible: true,
|
|
751
|
+
serverType: serverType,
|
|
752
|
+
url: url,
|
|
753
|
+
addType: addType
|
|
754
|
+
});
|
|
755
|
+
}
|
|
710
756
|
}
|
|
711
757
|
|
|
712
|
-
|
|
758
|
+
Promise.all(promiseList).then(() => {
|
|
759
|
+
this.flyToLayer(layers[0]);
|
|
713
760
|
|
|
714
|
-
|
|
761
|
+
this._layerManager.addTempLayerNode(node);
|
|
715
762
|
|
|
716
|
-
|
|
763
|
+
cb && cb(node);
|
|
764
|
+
});
|
|
717
765
|
}
|
|
718
766
|
});
|
|
719
767
|
|
|
@@ -864,7 +912,9 @@ class AddDataViewModel {
|
|
|
864
912
|
case "arcgismapserver":
|
|
865
913
|
layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dArcGISMapServerImageryProvider({
|
|
866
914
|
name: name,
|
|
867
|
-
url: url
|
|
915
|
+
url: url,
|
|
916
|
+
usePreCachedTilesIfAvailable: false //使用export请求可支持自定义比例尺
|
|
917
|
+
|
|
868
918
|
}));
|
|
869
919
|
this.flyToLayer(layer);
|
|
870
920
|
node = {
|
|
@@ -1225,7 +1275,12 @@ class AddDataViewModel {
|
|
|
1225
1275
|
destination: tileset.rectangle
|
|
1226
1276
|
});
|
|
1227
1277
|
});
|
|
1228
|
-
} else if (layer instanceof Cesium.GeoJsonDataSource || layer instanceof Cesium.Kq3dGeoJsonDataSource
|
|
1278
|
+
} else if (layer instanceof Cesium.GeoJsonDataSource || layer instanceof Cesium.Kq3dGeoJsonDataSource) {
|
|
1279
|
+
let offset = new Cesium.HeadingPitchRange(0, Cesium.Math.toRadians(-90), 0);
|
|
1280
|
+
viewer.flyTo(layer, {
|
|
1281
|
+
offset
|
|
1282
|
+
});
|
|
1283
|
+
} else if (layer instanceof Cesium.KmlDataSource || layer instanceof Cesium.CzmlDataSource) {
|
|
1229
1284
|
viewer.flyTo(layer);
|
|
1230
1285
|
} else if (layer instanceof Cesium.Kq3dKQGISServerTerrainProvider || layer instanceof Cesium.Kq3dFileTerrainProvider || layer instanceof Cesium.CesiumTerrainProvider) {
|
|
1231
1286
|
layer.getViewableRectangle().then(function (rectangle) {
|
|
@@ -2788,8 +2843,9 @@ const __default__ = {
|
|
|
2788
2843
|
gis_utils_.utils.getWebMap(null, scenceView => {
|
|
2789
2844
|
if (scenceView) {
|
|
2790
2845
|
changSelectTerrain();
|
|
2791
|
-
viewModel = new BaseterrainGalleryViewModel/* default */.Z(scenceView._viewer);
|
|
2792
|
-
|
|
2846
|
+
viewModel = new BaseterrainGalleryViewModel/* default */.Z(scenceView._viewer); // 初始化无地形时不需要设置地形, 如果将地形设置为无地形可能会影响其他功能添加的地形
|
|
2847
|
+
|
|
2848
|
+
if (currentIndex.value != 2) viewModel.setTerrainType(currentIndex.value);
|
|
2793
2849
|
}
|
|
2794
2850
|
});
|
|
2795
2851
|
});
|
|
@@ -37117,10 +37173,6 @@ class DrawManager {
|
|
|
37117
37173
|
delete style.billboard;
|
|
37118
37174
|
}
|
|
37119
37175
|
|
|
37120
|
-
if (geojsonData.type === "Feature") {
|
|
37121
|
-
geojsonData.properties = geojsonData.properties || {};
|
|
37122
|
-
}
|
|
37123
|
-
|
|
37124
37176
|
this._viewer.scene.globe.depthTestAgainstTerrain = false;
|
|
37125
37177
|
|
|
37126
37178
|
let geojsonDs = this._viewer.dataSources.getByName(idCustom);
|
|
@@ -37155,8 +37207,11 @@ class DrawManager {
|
|
|
37155
37207
|
}
|
|
37156
37208
|
|
|
37157
37209
|
if (isLocation) {
|
|
37210
|
+
let offset = new Cesium.HeadingPitchRange(0, Cesium.Math.toRadians(-90), 0);
|
|
37211
|
+
|
|
37158
37212
|
that._viewer.flyTo(ds, {
|
|
37159
|
-
duration: 1.5
|
|
37213
|
+
duration: 1.5,
|
|
37214
|
+
offset
|
|
37160
37215
|
});
|
|
37161
37216
|
}
|
|
37162
37217
|
|
|
@@ -38157,7 +38212,7 @@ class LayerManager {
|
|
|
38157
38212
|
|
|
38158
38213
|
case "s3m":
|
|
38159
38214
|
layerData.visible = isAdd;
|
|
38160
|
-
layerData.serverType = "
|
|
38215
|
+
layerData.serverType = "3dtiles";
|
|
38161
38216
|
|
|
38162
38217
|
if (isAdd) {
|
|
38163
38218
|
layer = this._viewer.scene.primitives.add(new Cesium.Kq3dS3MTilesLayer({
|
|
@@ -38202,6 +38257,9 @@ class LayerManager {
|
|
|
38202
38257
|
serverType = "datasource";
|
|
38203
38258
|
layer.show = isAdd;
|
|
38204
38259
|
layerData.shapeType = that.getShapeType(layer);
|
|
38260
|
+
} else if (layer instanceof Cesium.Kq3dS3MTilesLayer) {
|
|
38261
|
+
serverType = "3dtiles";
|
|
38262
|
+
layer.show = isAdd;
|
|
38205
38263
|
}
|
|
38206
38264
|
|
|
38207
38265
|
layer._guid = layerData.guid;
|
|
@@ -38269,6 +38327,8 @@ class LayerManager {
|
|
|
38269
38327
|
name: name,
|
|
38270
38328
|
url: url,
|
|
38271
38329
|
layers: layerData.id + "",
|
|
38330
|
+
usePreCachedTilesIfAvailable: false,
|
|
38331
|
+
//使用export请求可支持自定义比例尺
|
|
38272
38332
|
...params
|
|
38273
38333
|
}));
|
|
38274
38334
|
layer._guid = layerData.guid;
|
|
@@ -38316,7 +38376,8 @@ class LayerManager {
|
|
|
38316
38376
|
|
|
38317
38377
|
case "wms":
|
|
38318
38378
|
//配置id时只能是单个图层
|
|
38319
|
-
if (layerData.rect84) {
|
|
38379
|
+
if (layerData.rect84 && layerData.sourceType !== "service") {
|
|
38380
|
+
// 大数据wms服务使用
|
|
38320
38381
|
layerData.visible = isAdd;
|
|
38321
38382
|
layerData.serverType = "imagerylayer";
|
|
38322
38383
|
|
|
@@ -38356,7 +38417,7 @@ class LayerManager {
|
|
|
38356
38417
|
layerData.serverType = "imagerylayer";
|
|
38357
38418
|
|
|
38358
38419
|
if (isAdd) {
|
|
38359
|
-
promise = this._viewer.addWMSLayerGroup(url, {
|
|
38420
|
+
promise = this._viewer.addWMSLayerGroup(url, { ...params,
|
|
38360
38421
|
layers: layerData.id + ""
|
|
38361
38422
|
}).then(group => {
|
|
38362
38423
|
var layers = group._addedLayers || group._layers;
|
|
@@ -38394,7 +38455,7 @@ class LayerManager {
|
|
|
38394
38455
|
layerData.serverType = "imagerylayer"; //配置id时只能是单个图层
|
|
38395
38456
|
|
|
38396
38457
|
if (isAdd) {
|
|
38397
|
-
promise = this._viewer.addWMTSLayerGroup(url, {
|
|
38458
|
+
promise = this._viewer.addWMTSLayerGroup(url, { ...params,
|
|
38398
38459
|
layers: layerData.id + ""
|
|
38399
38460
|
}).then(group => {
|
|
38400
38461
|
var layers = group._addedLayers || group._layers;
|