@kq_npm/client3d_webgl_vue 3.4.3-beta → 3.4.4-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.
@@ -230,7 +230,8 @@ class AddDataViewModel {
230
230
  serverType: "datasource",
231
231
  lsType: "ls",
232
232
  url: res,
233
- addType: "geojson"
233
+ addType: "geojson",
234
+ shapeType: that._layerManager.getShapeType(ds)
234
235
  };
235
236
 
236
237
  that._layerManager.addTempLayerNode(layer);
@@ -272,7 +273,8 @@ class AddDataViewModel {
272
273
  serverType: "datasource",
273
274
  lsType: "ls",
274
275
  url: res,
275
- addType: "geojson"
276
+ addType: "geojson",
277
+ shapeType: that._layerManager.getShapeType(ds)
276
278
  };
277
279
 
278
280
  that._layerManager.addTempLayerNode(layer);
@@ -335,7 +337,8 @@ class AddDataViewModel {
335
337
  serverType: "datasource",
336
338
  lsType: "ls",
337
339
  url: ret,
338
- addType: "geojson"
340
+ addType: "geojson",
341
+ shapeType: that._layerManager.getShapeType(ds)
339
342
  };
340
343
 
341
344
  that._layerManager.addTempLayerNode(layer);
@@ -727,7 +730,9 @@ class AddDataViewModel {
727
730
  lsType: "ls",
728
731
  url: url,
729
732
  addType: type,
730
- layerName: name
733
+ layerName: name,
734
+ type: "Image" // 图层树显示图标使用
735
+
731
736
  };
732
737
 
733
738
  this._layerManager.addTempLayerNode(node);
@@ -834,7 +839,9 @@ class AddDataViewModel {
834
839
  serverType: "imagerylayer",
835
840
  lsType: "ls",
836
841
  url: url,
837
- addType: type
842
+ addType: type,
843
+ renderType: "vectortile" // 图层树显示图标使用
844
+
838
845
  };
839
846
 
840
847
  this._layerManager.addTempLayerNode(node);
@@ -848,7 +855,9 @@ class AddDataViewModel {
848
855
  guid: group.guid,
849
856
  name: name || "wms",
850
857
  children: [],
851
- lsType: "ls"
858
+ lsType: "ls",
859
+ serverType: 'ogcwms' //图层树显示图标使用
860
+
852
861
  };
853
862
  var layers = group._addedLayers || group._layers;
854
863
 
@@ -880,12 +889,20 @@ class AddDataViewModel {
880
889
  case "wmts":
881
890
  case "kqgistileserver":
882
891
  this._viewer.addWMTSLayerGroup(url).then(group => {
892
+ var defaultName = 'wmts';
893
+ if (type === "kqgistileserver") defaultName = 'tile';
883
894
  node = {
884
895
  guid: group.guid,
885
- name: name || "wmts",
896
+ name: name || defaultName,
886
897
  children: [],
887
898
  lsType: "ls"
888
899
  };
900
+
901
+ if (type === "wmts") {
902
+ //图层树显示图标使用
903
+ node.serverType = "ogcwmts";
904
+ }
905
+
889
906
  var layers = group._addedLayers || group._layers;
890
907
 
891
908
  if (layers) {
@@ -971,7 +988,8 @@ class AddDataViewModel {
971
988
  serverType: "datasource",
972
989
  lsType: "ls",
973
990
  url: url,
974
- addType: type
991
+ addType: type,
992
+ shapeType: this._layerManager.getShapeType(ds)
975
993
  };
976
994
 
977
995
  this._layerManager.addTempLayerNode(node);
@@ -26545,9 +26563,14 @@ class LayerManager {
26545
26563
  });
26546
26564
  this._promises = [];
26547
26565
  Promise.all(sourcePromises).then(() => {
26548
- layer.layerTreeData.forEach(data => {
26549
- this.setLayerInfo(data, layer.sources);
26550
- }, this);
26566
+ // layer.layerTreeData.forEach(data => {
26567
+ // this.setLayerInfo(data, layer.sources);
26568
+ // }, this);
26569
+ //倒序加载图层
26570
+ for (let i = layer.layerTreeData.length - 1; i >= 0; i--) {
26571
+ this.setLayerInfo(layer.layerTreeData[i], layer.sources);
26572
+ }
26573
+
26551
26574
  Promise.all(this._promises).then(() => {
26552
26575
  this._layerTreeData = layer.layerTreeData;
26553
26576
 
@@ -26573,10 +26596,14 @@ class LayerManager {
26573
26596
 
26574
26597
  setLayerInfo(layerData, sources) {
26575
26598
  if (layerData.children) {
26576
- layerData.guid = Cesium.createGuid();
26577
- layerData.children.forEach(child => {
26578
- this.setLayerInfo(child, sources);
26579
- }, this);
26599
+ layerData.guid = Cesium.createGuid(); // layerData.children.forEach(child => {
26600
+ // this.setLayerInfo(child, sources);
26601
+ // }, this);
26602
+ //倒序加载子图层
26603
+
26604
+ for (let i = layerData.children.length - 1; i >= 0; i--) {
26605
+ this.setLayerInfo(layerData.children[i], sources);
26606
+ }
26580
26607
  } else {
26581
26608
  if (layerData.sourceName) {
26582
26609
  var source = sources.find(item => {
@@ -26614,18 +26641,20 @@ class LayerManager {
26614
26641
  type = "kqgisimageserver";
26615
26642
  } else if (layerData.sourceType === "kq3dserver") {
26616
26643
  type = "kqgis3dserver";
26644
+ } else if (layerData.sourceType === "mvt") {
26645
+ type = "mvt";
26617
26646
  }
26618
26647
 
26619
26648
  layerData.addType = type;
26620
26649
 
26621
- this._layerListData.push(layerData);
26650
+ this._layerListData.push(layerData); //是否添加图层
26622
26651
 
26623
- if (!this._scenceShowLayers || this._scenceShowLayers.indexOf(layerData.name) > -1) {
26624
- var promise = this.addLayerData(layerData);
26625
26652
 
26626
- if (promise) {
26627
- this._promises.push(promise);
26628
- }
26653
+ let isAdd = !this._scenceShowLayers || this._scenceShowLayers.indexOf(layerData.name) > -1;
26654
+ var promise = this.addLayerData(layerData, isAdd);
26655
+
26656
+ if (promise) {
26657
+ this._promises.push(promise);
26629
26658
  }
26630
26659
  }
26631
26660
  }
@@ -26633,7 +26662,7 @@ class LayerManager {
26633
26662
  } //添加图层数据
26634
26663
 
26635
26664
 
26636
- addLayerData(layerData) {
26665
+ addLayerData(layerData, isAdd = true) {
26637
26666
  var type = layerData.addType;
26638
26667
  let url = layerData.url;
26639
26668
  type = type || "";
@@ -26658,6 +26687,10 @@ class LayerManager {
26658
26687
  }
26659
26688
  }
26660
26689
  }
26690
+ } else {
26691
+ if (!name || name === "") {
26692
+ name = layerData.layerType;
26693
+ }
26661
26694
  }
26662
26695
 
26663
26696
  layerData.name = name;
@@ -26667,65 +26700,80 @@ class LayerManager {
26667
26700
  switch (type) {
26668
26701
  case 'kq3dimageryfile':
26669
26702
  //影像瓦片文件
26670
- layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dFileImageryProvider({
26671
- name: name,
26672
- url: url,
26673
- ...params
26674
- }));
26675
- layer._guid = layerData.guid;
26676
- layerData.visible = true;
26703
+ layerData.visible = isAdd;
26677
26704
  layerData.serverType = "imagerylayer";
26705
+
26706
+ if (isAdd) {
26707
+ layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dFileImageryProvider({
26708
+ name: name,
26709
+ url: url,
26710
+ ...params
26711
+ }));
26712
+ layer._guid = layerData.guid;
26713
+ }
26714
+
26678
26715
  break;
26679
26716
 
26680
26717
  case 'obterrain':
26681
26718
  //ob地形瓦片文件
26682
- layer = new Cesium.Kq3dFileTerrainProvider({
26683
- name: name,
26684
- url: url,
26685
- ...params
26686
- });
26687
- layer.guid = layerData.guid;
26688
- layerData.visible = true;
26719
+ layerData.visible = isAdd;
26689
26720
  layerData.serverType = "terrainprovider";
26690
- this._viewer.terrainProvider = layer;
26691
26721
 
26692
- this._terrainProviders.push(layer);
26722
+ if (isAdd) {
26723
+ layer = new Cesium.Kq3dFileTerrainProvider({
26724
+ name: name,
26725
+ url: url,
26726
+ ...params
26727
+ });
26728
+ layer.guid = layerData.guid;
26729
+ this._viewer.terrainProvider = layer;
26730
+
26731
+ this._terrainProviders.push(layer);
26732
+ }
26693
26733
 
26694
26734
  break;
26695
26735
 
26696
26736
  case 'stkterrain':
26697
26737
  //stk地形瓦片文件
26698
- layer = new Cesium.CesiumTerrainProvider({
26699
- name: name,
26700
- url: url,
26701
- requestVertexNormals: true,
26702
- requestWaterMask: false,
26703
- ...params
26704
- });
26705
- layer.guid = layerData.guid;
26706
- this._viewer.terrainProvider = layer;
26738
+ layerData.visible = isAdd;
26739
+ layerData.serverType = "terrainprovider";
26707
26740
 
26708
- this._terrainProviders.push(layer);
26741
+ if (isAdd) {
26742
+ layer = new Cesium.CesiumTerrainProvider({
26743
+ name: name,
26744
+ url: url,
26745
+ requestVertexNormals: true,
26746
+ requestWaterMask: false,
26747
+ ...params
26748
+ });
26749
+ layer.guid = layerData.guid;
26750
+ this._viewer.terrainProvider = layer;
26751
+
26752
+ this._terrainProviders.push(layer);
26753
+ }
26709
26754
 
26710
- layerData.visible = true;
26711
- layerData.serverType = "terrainprovider";
26712
26755
  break;
26713
26756
 
26714
26757
  case "3dtiles":
26715
- layer = this._viewer.scene.primitives.add(new Cesium.Cesium3DTileset({
26716
- name: name,
26717
- url: url,
26718
- ...params
26719
- }));
26720
- if (layerData.style && layer) layer.style = layerData.style;
26721
- if (layerData.shader && layer) layer.kq3dCustomShader = layerData.shader;
26722
- layer._guid = layerData.guid;
26723
- layerData.visible = true;
26758
+ layerData.visible = isAdd;
26724
26759
  layerData.serverType = "3dtiles";
26760
+
26761
+ if (isAdd) {
26762
+ layer = this._viewer.scene.primitives.add(new Cesium.Cesium3DTileset({
26763
+ name: name,
26764
+ url: url,
26765
+ ...params
26766
+ }));
26767
+ if (layerData.style && layer) layer.style = layerData.style;
26768
+ if (layerData.shader && layer) layer.kq3dCustomShader = layerData.shader;
26769
+ layer._guid = layerData.guid;
26770
+ }
26771
+
26725
26772
  break;
26726
26773
 
26727
26774
  case "kqgis3dserver":
26728
26775
  var that = this;
26776
+ layerData.visible = isAdd;
26729
26777
  promise = this._viewer.addKq3dServerLayerGroupExt(url).then(group => {
26730
26778
  var layers = group._addedLayers || group._layers;
26731
26779
 
@@ -26735,34 +26783,48 @@ class LayerManager {
26735
26783
 
26736
26784
  if (layer instanceof Cesium.Cesium3DTileset) {
26737
26785
  serverType = "3dtiles";
26786
+ layer.show = isAdd;
26738
26787
  } else if (layer instanceof Cesium.ImageryLayer) {
26739
26788
  serverType = "imagerylayer";
26789
+ layer.show = isAdd;
26740
26790
  } else if (layer instanceof Cesium.Kq3dFileTerrainProvider || layer instanceof Cesium.CesiumTerrainProvider) {
26741
26791
  serverType = "terrainprovider";
26742
26792
  layer.guid = layerData.guid;
26743
26793
 
26744
26794
  that._terrainProviders.push(layer);
26795
+
26796
+ if (!isAdd) {
26797
+ layer.readyPromise.then(() => {
26798
+ that._viewer.terrainProvider = that._emptyTerrainProvider;
26799
+ });
26800
+ }
26745
26801
  } else if (layer instanceof Cesium.Kq3dGeoJsonDataSource) {
26746
26802
  serverType = "datasource";
26803
+ layer.show = isAdd;
26804
+ layerData.shapeType = that.getShapeType(layer);
26747
26805
  }
26748
26806
 
26749
26807
  layer._guid = layerData.guid;
26750
- layerData.visible = true;
26751
26808
  layerData.serverType = serverType;
26752
26809
  }
26753
26810
  });
26754
26811
  break;
26755
26812
 
26756
26813
  case "kqgisimageserver":
26757
- layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dKQGISServerImageryProviderExt({
26758
- name: name,
26759
- url: url,
26760
- layerName: layerData.layerName,
26761
- ...params
26762
- }));
26763
- layer._guid = layerData.guid;
26764
- layerData.visible = true;
26814
+ layerData.visible = isAdd;
26765
26815
  layerData.serverType = "imagerylayer";
26816
+ layerData.type = "Image"; // 图层树显示图标使用
26817
+
26818
+ if (isAdd) {
26819
+ layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dKQGISServerImageryProviderExt({
26820
+ name: name,
26821
+ url: url,
26822
+ layerName: layerData.layerName,
26823
+ ...params
26824
+ }));
26825
+ layer._guid = layerData.guid;
26826
+ }
26827
+
26766
26828
  break;
26767
26829
 
26768
26830
  case "kqgismapserver":
@@ -26780,125 +26842,145 @@ class LayerManager {
26780
26842
  }
26781
26843
  }
26782
26844
 
26783
- layerData.visible = true;
26784
- var imageryProvider = new Cesium.Kq3dKQGISMapServerImageryProviderExt({
26785
- url: url,
26786
- ua_token: layerData.token,
26787
- layers: layerData.id + "",
26788
- ...params
26789
- });
26790
- layer = new Cesium.ImageryLayer(imageryProvider);
26845
+ layerData.visible = isAdd;
26846
+ layerData.serverType = "imagerylayer";
26847
+
26848
+ if (isAdd) {
26849
+ var imageryProvider = new Cesium.Kq3dKQGISMapServerImageryProviderExt({
26850
+ url: url,
26851
+ ua_token: layerData.token,
26852
+ layers: layerData.id + "",
26853
+ ...params
26854
+ });
26855
+ layer = new Cesium.ImageryLayer(imageryProvider);
26791
26856
 
26792
- this._viewer.imageryLayers.add(layer);
26857
+ this._viewer.imageryLayers.add(layer);
26858
+
26859
+ layer._guid = layerData.guid;
26860
+ }
26793
26861
 
26794
- layer._guid = layerData.guid;
26795
- layerData.serverType = "imagerylayer";
26796
26862
  break;
26797
26863
 
26798
26864
  case "arcgismapserver":
26799
- layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dArcGISMapServerImageryProvider({
26800
- name: name,
26801
- url: url,
26802
- layers: layerData.id + "",
26803
- ...params
26804
- }));
26805
- layer._guid = layerData.guid;
26806
- layerData.visible = true;
26865
+ layerData.visible = isAdd;
26807
26866
  layerData.serverType = "imagerylayer";
26867
+
26868
+ if (isAdd) {
26869
+ layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dArcGISMapServerImageryProvider({
26870
+ name: name,
26871
+ url: url,
26872
+ layers: layerData.id + "",
26873
+ ...params
26874
+ }));
26875
+ layer._guid = layerData.guid;
26876
+ }
26877
+
26808
26878
  break;
26809
26879
 
26810
26880
  case "mvt":
26811
- layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dMvtImageryProviderExt({
26812
- name: name,
26813
- url: url,
26814
- ...params
26815
- }));
26816
- layer._guid = layerData.guid;
26817
- layerData.visible = true;
26881
+ layerData.visible = isAdd;
26818
26882
  layerData.serverType = "imagerylayer";
26883
+ layerData.renderType = "vectortile"; // 图层树显示图标使用
26884
+
26885
+ if (isAdd) {
26886
+ layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dMvtImageryProviderExt({
26887
+ name: name,
26888
+ style: url,
26889
+ ...params
26890
+ }));
26891
+ layer._guid = layerData.guid;
26892
+ }
26893
+
26819
26894
  break;
26820
26895
 
26821
26896
  case "wms":
26822
26897
  //配置id时只能是单个图层
26823
26898
  if (layerData.rect84) {
26824
- var options = {
26825
- url: url,
26826
- layers: layerData.id + "",
26827
- tilingScheme: layerData.epsg == 3857 ? new Cesium.WebMercatorTilingScheme() : new Cesium.GeographicTilingScheme(),
26828
- rectangle: Cesium.Rectangle.fromDegrees(layerData.rect84[0], layerData.rect84[1], layerData.rect84[2], layerData.rect84[3]),
26829
- parameters: {
26830
- transparent: 'true',
26831
- format: 'image/png'
26832
- },
26833
- ...params
26834
- };
26835
- if (layerData.styles) options.parameters.styles = layerData.styles;
26836
- layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.WebMapServiceImageryProvider(options));
26837
- layer._guid = layerData.guid;
26838
- layerData.visible = true;
26899
+ layerData.visible = isAdd;
26839
26900
  layerData.serverType = "imagerylayer";
26840
- } else {
26841
- promise = this._viewer.addWMSLayerGroup(url, {
26842
- layers: layerData.id + ""
26843
- }).then(group => {
26844
- var layers = group._addedLayers || group._layers;
26845
26901
 
26846
- if (layers && layers.length > 0) {
26847
- //如果是kqserver类型,记录服务返回的图层信息
26848
- if (layerData.sourceLayers) {
26849
- var layerInfo = layerData.sourceLayers.find(item => {
26850
- return item.id + "" == layerData.id + "";
26851
- });
26902
+ if (isAdd) {
26903
+ var options = {
26904
+ url: url,
26905
+ layers: layerData.id + "",
26906
+ tilingScheme: layerData.epsg == 3857 ? new Cesium.WebMercatorTilingScheme() : new Cesium.GeographicTilingScheme(),
26907
+ rectangle: Cesium.Rectangle.fromDegrees(layerData.rect84[0], layerData.rect84[1], layerData.rect84[2], layerData.rect84[3]),
26908
+ parameters: {
26909
+ transparent: 'true',
26910
+ format: 'image/png'
26911
+ },
26912
+ ...params
26913
+ };
26914
+ if (layerData.styles) options.parameters.styles = layerData.styles;
26915
+ layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.WebMapServiceImageryProvider(options));
26916
+ layer._guid = layerData.guid;
26917
+ }
26918
+ } else {
26919
+ //如果是kqserver类型,记录服务返回的图层信息
26920
+ if (layerData.sourceLayers) {
26921
+ var layerInfo = layerData.sourceLayers.find(item => {
26922
+ return item.id + "" == layerData.id + "";
26923
+ });
26852
26924
 
26853
- if (layerInfo) {
26854
- for (var key in layerInfo) {
26855
- if (!layerData[key]) {
26856
- layerData[key] = layerInfo[key];
26857
- }
26858
- }
26925
+ if (layerInfo) {
26926
+ for (var key in layerInfo) {
26927
+ if (!layerData[key]) {
26928
+ layerData[key] = layerInfo[key];
26859
26929
  }
26860
26930
  }
26861
-
26862
- layers[0]._guid = layerData.guid;
26863
- layerData.name = name || layers[0].name;
26864
- layerData.visible = true;
26865
- layerData.serverType = "imagerylayer";
26866
26931
  }
26867
- });
26932
+ }
26933
+
26934
+ layerData.visible = isAdd;
26935
+ layerData.serverType = "imagerylayer";
26936
+
26937
+ if (isAdd) {
26938
+ promise = this._viewer.addWMSLayerGroup(url, {
26939
+ layers: layerData.id + ""
26940
+ }).then(group => {
26941
+ var layers = group._addedLayers || group._layers;
26942
+
26943
+ if (layers && layers.length > 0) {
26944
+ layers[0]._guid = layerData.guid;
26945
+ }
26946
+ });
26947
+ }
26868
26948
  }
26869
26949
 
26870
26950
  break;
26871
26951
 
26872
26952
  case "wmts":
26873
26953
  case "kqgistileserver":
26874
- //配置id时只能是单个图层
26875
- promise = this._viewer.addWMTSLayerGroup(url, {
26876
- layers: layerData.id + ""
26877
- }).then(group => {
26878
- var layers = group._addedLayers || group._layers;
26879
-
26880
- if (layers && layers.length > 0) {
26881
- //如果是kqserver类型,记录服务返回的图层信息
26882
- if (layerData.sourceLayers) {
26883
- var layerInfo = layerData.sourceLayers.find(item => {
26884
- return item.id + "" == layerData.id + "";
26885
- });
26954
+ //如果是kqserver类型,记录服务返回的图层信息
26955
+ if (layerData.sourceLayers) {
26956
+ var layerInfo = layerData.sourceLayers.find(item => {
26957
+ return item.id + "" == layerData.id + "";
26958
+ });
26886
26959
 
26887
- if (layerInfo) {
26888
- for (var key in layerInfo) {
26889
- if (!layerData[key]) {
26890
- layerData[key] = layerInfo[key];
26891
- }
26892
- }
26960
+ if (layerInfo) {
26961
+ for (var key in layerInfo) {
26962
+ if (!layerData[key]) {
26963
+ layerData[key] = layerInfo[key];
26893
26964
  }
26894
26965
  }
26895
-
26896
- layers[0]._guid = layerData.guid;
26897
- layerData.name = name || layers[0].name;
26898
- layerData.visible = true;
26899
- layerData.serverType = "imagerylayer";
26900
26966
  }
26901
- });
26967
+ }
26968
+
26969
+ layerData.visible = isAdd;
26970
+ layerData.serverType = "imagerylayer"; //配置id时只能是单个图层
26971
+
26972
+ if (isAdd) {
26973
+ promise = this._viewer.addWMTSLayerGroup(url, {
26974
+ layers: layerData.id + ""
26975
+ }).then(group => {
26976
+ var layers = group._addedLayers || group._layers;
26977
+
26978
+ if (layers && layers.length > 0) {
26979
+ layers[0]._guid = layerData.guid;
26980
+ }
26981
+ });
26982
+ }
26983
+
26902
26984
  break;
26903
26985
  // case "wfs":
26904
26986
  // var wfsProvider = new Cesium.Kq3dWebFeatureServiceProvider({
@@ -26919,97 +27001,126 @@ class LayerManager {
26919
27001
  // break;
26920
27002
 
26921
27003
  case "geojson":
26922
- var ds = new Cesium.Kq3dGeoJsonDataSource(name);
26923
- var geojsonStyle = layerData.geojsonStyle || this._geojsonStyle;
26924
- promise = ds.load(url, geojsonStyle).then(ds => {
26925
- ds.entities.values.forEach(entity => {
26926
- if (entity.polygon) {
26927
- entity.polyline = {
26928
- positions: entity.polygon.hierarchy._value.positions,
26929
- width: geojsonStyle.polygon.outlineWidth,
26930
- material: geojsonStyle.polygon.outlineColor
26931
- };
26932
- }
26933
- }, this);
27004
+ layerData.visible = isAdd;
27005
+ layerData.serverType = "datasource";
26934
27006
 
26935
- this._viewer.dataSources.add(ds);
27007
+ if (isAdd) {
27008
+ var ds = new Cesium.Kq3dGeoJsonDataSource(name);
27009
+ var geojsonStyle = layerData.geojsonStyle || this._geojsonStyle;
27010
+ promise = ds.load(url, geojsonStyle).then(ds => {
27011
+ ds.entities.values.forEach(entity => {
27012
+ if (entity.polygon) {
27013
+ entity.polyline = {
27014
+ positions: entity.polygon.hierarchy._value.positions,
27015
+ width: geojsonStyle.polygon.outlineWidth,
27016
+ material: geojsonStyle.polygon.outlineColor
27017
+ };
27018
+ }
27019
+ }, this);
27020
+
27021
+ this._viewer.dataSources.add(ds);
27022
+
27023
+ ds.autoAvoid(this._viewer);
27024
+ ds._guid = layerData.guid;
27025
+ layerData.shapeType = this.getShapeType(ds);
27026
+ });
27027
+ }
26936
27028
 
26937
- ds.autoAvoid(this._viewer);
26938
- ds._guid = layerData.guid;
26939
- layerData.visible = true;
26940
- layerData.serverType = "datasource";
26941
- });
26942
27029
  break;
26943
27030
 
26944
27031
  case "kml":
26945
- var ds = new Cesium.KmlDataSource({
26946
- name: name,
26947
- camera: this._viewer.camera,
26948
- canvas: this._viewer.scene.canvas,
26949
- ...params
26950
- });
26951
- promise = ds.load(url).then(ds => {
26952
- this._viewer.dataSources.add(ds);
27032
+ layerData.visible = isAdd;
27033
+ layerData.serverType = "datasource";
27034
+
27035
+ if (isAdd) {
27036
+ var ds = new Cesium.KmlDataSource({
27037
+ name: name,
27038
+ camera: this._viewer.camera,
27039
+ canvas: this._viewer.scene.canvas,
27040
+ ...params
27041
+ });
27042
+ promise = ds.load(url).then(ds => {
27043
+ this._viewer.dataSources.add(ds);
27044
+
27045
+ ds._guid = layerData.guid;
27046
+ });
27047
+ }
26953
27048
 
26954
- ds._guid = layerData.guid;
26955
- layerData.visible = true;
26956
- layerData.serverType = "datasource";
26957
- });
26958
27049
  break;
26959
27050
 
26960
27051
  case "czml":
26961
- var ds = new Cesium.CzmlDataSource(name);
26962
- promise = ds.load(url).then(ds => {
26963
- this._viewer.dataSources.add(ds);
27052
+ layerData.visible = isAdd;
27053
+ layerData.serverType = "datasource";
27054
+
27055
+ if (isAdd) {
27056
+ var ds = new Cesium.CzmlDataSource(name);
27057
+ promise = ds.load(url).then(ds => {
27058
+ this._viewer.dataSources.add(ds);
27059
+
27060
+ ds._guid = layerData.guid;
27061
+ });
27062
+ }
26964
27063
 
26965
- ds._guid = layerData.guid;
26966
- layerData.visible = true;
26967
- layerData.serverType = "datasource";
26968
- });
26969
27064
  break;
26970
27065
 
26971
27066
  case "tianditu":
26972
- layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dTiandituImageryProvider({
26973
- name: name,
26974
- mapStyle: layerData.layerType + "_c",
26975
- ...params
26976
- }));
26977
- layer._guid = layerData.guid;
26978
- layerData.visible = true;
27067
+ layerData.visible = isAdd;
26979
27068
  layerData.serverType = "imagerylayer";
27069
+
27070
+ if (isAdd) {
27071
+ layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dTiandituImageryProvider({
27072
+ name: name,
27073
+ mapStyle: layerData.layerType + "_c",
27074
+ ...params
27075
+ }));
27076
+ layer._guid = layerData.guid;
27077
+ }
27078
+
26980
27079
  break;
26981
27080
 
26982
27081
  case "baidu":
26983
- layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dBaiduMapsImageryProvider({
26984
- name: name,
26985
- mapStyle: layerData.layerType,
26986
- ...params
26987
- }));
26988
- layer._guid = layerData.guid;
26989
- layerData.visible = true;
27082
+ layerData.visible = isAdd;
26990
27083
  layerData.serverType = "imagerylayer";
27084
+
27085
+ if (isAdd) {
27086
+ layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dBaiduMapsImageryProvider({
27087
+ name: name,
27088
+ mapStyle: layerData.layerType,
27089
+ ...params
27090
+ }));
27091
+ layer._guid = layerData.guid;
27092
+ }
27093
+
26991
27094
  break;
26992
27095
 
26993
27096
  case "gaode":
26994
- layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dAMapsImageryProvider({
26995
- name: name,
26996
- mapStyle: layerData.layerType,
26997
- ...params
26998
- }));
26999
- layer._guid = layerData.guid;
27000
- layerData.visible = true;
27097
+ layerData.visible = isAdd;
27001
27098
  layerData.serverType = "imagerylayer";
27099
+
27100
+ if (isAdd) {
27101
+ layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dAMapsImageryProvider({
27102
+ name: name,
27103
+ mapStyle: layerData.layerType,
27104
+ ...params
27105
+ }));
27106
+ layer._guid = layerData.guid;
27107
+ }
27108
+
27002
27109
  break;
27003
27110
 
27004
27111
  case "tencent":
27005
- layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dQQMapsImageryProvider({
27006
- name: name,
27007
- mapStyle: layerData.layerType,
27008
- ...params
27009
- }));
27010
- layer._guid = layerData.guid;
27011
- layerData.visible = true;
27112
+ layerData.visible = isAdd;
27012
27113
  layerData.serverType = "imagerylayer";
27114
+
27115
+ if (isAdd) {
27116
+ layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dQQMapsImageryProvider({
27117
+ name: name,
27118
+ mapStyle: layerData.layerType,
27119
+ ...params
27120
+ }));
27121
+ layer._guid = layerData.guid;
27122
+ }
27123
+
27013
27124
  break;
27014
27125
 
27015
27126
  default:
@@ -27017,6 +27128,25 @@ class LayerManager {
27017
27128
  }
27018
27129
 
27019
27130
  return promise;
27131
+ } // 获取geojson数据类型
27132
+
27133
+
27134
+ getShapeType(ds) {
27135
+ let shapeType = "";
27136
+
27137
+ if (ds.entities.values.length > 0) {
27138
+ let entity = ds.entities.values[0];
27139
+
27140
+ if (entity.polygon) {
27141
+ shapeType = 'polygon';
27142
+ } else if (entity.polyline) {
27143
+ shapeType = 'polyline';
27144
+ } else if (entity.billboard || entity.point) {
27145
+ shapeType = 'point';
27146
+ }
27147
+ }
27148
+
27149
+ return shapeType;
27020
27150
  } //添加服务数据
27021
27151
 
27022
27152