@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 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
- viewer: this._viewer
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].url;
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].url;
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].url;
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]._baseUri + layers[i]._name;
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 = "s3m";
830
+ serverType = "3dtiles";
787
831
  addType = "s3m";
788
832
  url = layers[i]._url;
789
833
  }
790
834
 
791
- if (!layers[i].guid) layers[i].guid = Cesium.createGuid();
792
- node.children.push({
793
- guid: layers[i].guid,
794
- name: layers[i].name || layers[i]._name,
795
- visible: true,
796
- serverType: serverType,
797
- url: url,
798
- addType: addType
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
- this.flyToLayer(layers[0]);
848
+ Promise.all(promiseList).then(() => {
849
+ this.flyToLayer(layers[0]);
803
850
 
804
- this._layerManager.addTempLayerNode(node);
851
+ this._layerManager.addTempLayerNode(node);
805
852
 
806
- cb && cb(node);
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 || layer instanceof Cesium.KmlDataSource || layer instanceof Cesium.CzmlDataSource) {
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
- viewModel.setTerrainType(currentIndex.value);
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 = "s3m";
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
- viewModel.setTerrainType(currentIndex.value);
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
- viewer: this._viewer
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].url;
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].url;
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].url;
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]._baseUri + layers[i]._name;
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 = "s3m";
27112
+ serverType = "3dtiles";
27063
27113
  addType = "s3m";
27064
27114
  url = layers[i]._url;
27065
27115
  }
27066
27116
 
27067
- if (!layers[i].guid) layers[i].guid = Cesium.createGuid();
27068
- node.children.push({
27069
- guid: layers[i].guid,
27070
- name: layers[i].name || layers[i]._name,
27071
- visible: true,
27072
- serverType: serverType,
27073
- url: url,
27074
- addType: addType
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
- this.flyToLayer(layers[0]);
27130
+ Promise.all(promiseList).then(() => {
27131
+ this.flyToLayer(layers[0]);
27079
27132
 
27080
- this._layerManager.addTempLayerNode(node);
27133
+ this._layerManager.addTempLayerNode(node);
27081
27134
 
27082
- cb && cb(node);
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 || layer instanceof Cesium.KmlDataSource || layer instanceof Cesium.CzmlDataSource) {
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.6-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"}}
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"}}
@@ -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
- viewer: this._viewer
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].url;
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].url;
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].url;
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]._baseUri + layers[i]._name;
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 = "s3m";
740
+ serverType = "3dtiles";
697
741
  addType = "s3m";
698
742
  url = layers[i]._url;
699
743
  }
700
744
 
701
- if (!layers[i].guid) layers[i].guid = Cesium.createGuid();
702
- node.children.push({
703
- guid: layers[i].guid,
704
- name: layers[i].name || layers[i]._name,
705
- visible: true,
706
- serverType: serverType,
707
- url: url,
708
- addType: addType
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
- this.flyToLayer(layers[0]);
758
+ Promise.all(promiseList).then(() => {
759
+ this.flyToLayer(layers[0]);
713
760
 
714
- this._layerManager.addTempLayerNode(node);
761
+ this._layerManager.addTempLayerNode(node);
715
762
 
716
- cb && cb(node);
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 || layer instanceof Cesium.KmlDataSource || layer instanceof Cesium.CzmlDataSource) {
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
- viewModel.setTerrainType(currentIndex.value);
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 = "s3m";
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;