@kq_npm/client3d_webgl_vue 0.7.6-beta → 0.7.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/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@kq_npm/client3d_webgl_vue","description":"KQGIS Client3D for Vue.js","version":"0.7.6-beta","homepage":"","keywords":["KQGIS","webGL","Vue"],"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.3","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","@turf/turf":"^6.5.0","css-vars-ponyfill":"^2.4.8","xe-utils":"^3.5.4"}}
1
+ {"name":"@kq_npm/client3d_webgl_vue","description":"KQGIS Client3D for Vue.js","version":"0.7.8-beta","homepage":"","keywords":["KQGIS","webGL","Vue"],"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.3","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","@turf/turf":"^6.5.0","css-vars-ponyfill":"^2.4.8","xe-utils":"^3.5.4"}}
@@ -664,8 +664,10 @@ class LayerManager {
664
664
  source.mapServerInfo = (0,util_namespaceObject.formatKQMapInfo)(mapInfo.result, serverUrl, serverName, token, null, true);
665
665
  source.mapServerInfo.layers_old.forEach(layer_old => {
666
666
  layer_old.guid = source.name + "@@@" + layer_old.id;
667
- });
668
- this._layerListData_old = this._layerListData_old.concat(source.mapServerInfo.layers_old);
667
+ layer_old.sourceName = source.name;
668
+
669
+ this._layerListData_old.push(layer_old);
670
+ }, this);
669
671
  });
670
672
  sourcePromises.push(sourcePromise);
671
673
  }
@@ -678,7 +680,20 @@ class LayerManager {
678
680
  Promise.all(this._promises).then(() => {
679
681
  this._layerTreeData = layer.layerTreeData;
680
682
 
681
- this._scenceView.fire("resetLayerDatas");
683
+ this._scenceView.fire("resetLayerDatas"); //重置Imagerylayer图层顺序,wms和wmts异步加载导致图层顺序错乱
684
+
685
+
686
+ this._layerListData.forEach(layerData => {
687
+ if (layerData.serverType === "imagerylayer") {
688
+ var imagerylayer = this.getLayerByGuid(layerData.guid, 'imagerylayer');
689
+
690
+ if (imagerylayer) {
691
+ this._viewer.imageryLayers.raiseToTop(imagerylayer);
692
+ }
693
+ }
694
+ }, this);
695
+
696
+ this.recordImageryLayerOriginIndex();
682
697
  });
683
698
  });
684
699
  }
@@ -701,6 +716,7 @@ class LayerManager {
701
716
  layerData.sourceType = source.serverType;
702
717
  layerData.renderType = source.renderType;
703
718
  layerData.url = source.url;
719
+ layerData.guid = layerData.sourceName + "@@@" + (layerData.id || Math.random() * 10);
704
720
  var type = layerData.renderType;
705
721
 
706
722
  if (layerData.sourceType === "kqserver") {
@@ -729,16 +745,16 @@ class LayerManager {
729
745
  type = "kqgis3dserver";
730
746
  }
731
747
 
732
- var promise = this.addLayerData(layerData, type);
748
+ layerData.addType = type;
733
749
 
734
- if (promise) {
735
- this._promises.push(promise);
750
+ this._layerListData.push(layerData);
736
751
 
737
- promise.then(() => {
738
- this._layerListData.push(layerData);
739
- });
740
- } else {
741
- this._layerListData.push(layerData);
752
+ if (!this._scenceShowLayers || this._scenceShowLayers.indexOf(layerData.name) > -1) {
753
+ var promise = this.addLayerData(layerData);
754
+
755
+ if (promise) {
756
+ this._promises.push(promise);
757
+ }
742
758
  }
743
759
  }
744
760
  }
@@ -746,7 +762,8 @@ class LayerManager {
746
762
  } //添加图层数据
747
763
 
748
764
 
749
- addLayerData(layerData, type) {
765
+ addLayerData(layerData) {
766
+ var type = layerData.addType;
750
767
  let url = layerData.url;
751
768
  type = type || "";
752
769
  type = type.toLowerCase();
@@ -782,15 +799,9 @@ class LayerManager {
782
799
  name: name,
783
800
  url: url
784
801
  }));
785
- layerData.guid = layer.guid;
802
+ this._guidMapping[layerData.guid] = layer.guid;
786
803
  layerData.visible = true;
787
804
  layerData.serverType = "imagerylayer";
788
-
789
- if (this._scenceShowLayers && this._scenceShowLayers.indexOf(name) === -1) {
790
- layerData.visible = false;
791
- layer.show = false;
792
- }
793
-
794
805
  break;
795
806
 
796
807
  case 'obterrain':
@@ -800,18 +811,13 @@ class LayerManager {
800
811
  url: url
801
812
  });
802
813
  if (!layer.guid) layer.guid = Cesium.createGuid();
803
- layerData.guid = layer.guid;
814
+ this._guidMapping[layerData.guid] = layer.guid;
804
815
  layerData.visible = true;
805
- layerData.serverType = "terrainprovider"; //this._viewer.terrainProvider = layer;
816
+ layerData.serverType = "terrainprovider";
817
+ this._viewer.terrainProvider = layer;
806
818
 
807
819
  this._terrainProviders.push(layer);
808
820
 
809
- if (this._scenceShowLayers && this._scenceShowLayers.indexOf(name) === -1) {
810
- layerData.visible = false;
811
- } else {
812
- this._viewer.terrainProvider = layer;
813
- }
814
-
815
821
  break;
816
822
 
817
823
  case 'stkterrain':
@@ -822,20 +828,14 @@ class LayerManager {
822
828
  requestVertexNormals: true,
823
829
  requestWaterMask: false
824
830
  });
825
- if (!layer.guid) layer.guid = Cesium.createGuid(); //this._viewer.terrainProvider = layer;
831
+ if (!layer.guid) layer.guid = Cesium.createGuid();
832
+ this._viewer.terrainProvider = layer;
826
833
 
827
834
  this._terrainProviders.push(layer);
828
835
 
829
- layerData.guid = layer.guid;
836
+ this._guidMapping[layerData.guid] = layer.guid;
830
837
  layerData.visible = true;
831
838
  layerData.serverType = "terrainprovider";
832
-
833
- if (this._scenceShowLayers && this._scenceShowLayers.indexOf(name) === -1) {
834
- layerData.visible = false;
835
- } else {
836
- this._viewer.terrainProvider = layer;
837
- }
838
-
839
839
  break;
840
840
 
841
841
  case "3dtiles":
@@ -843,87 +843,36 @@ class LayerManager {
843
843
  name: name,
844
844
  url: url
845
845
  }));
846
- layerData.guid = layer.guid;
846
+ this._guidMapping[layerData.guid] = layer.guid;
847
847
  layerData.visible = true;
848
848
  layerData.serverType = "3dtiles";
849
-
850
- if (this._scenceShowLayers && this._scenceShowLayers.indexOf(name) === -1) {
851
- layerData.visible = false;
852
- layer.show = false;
853
- }
854
-
855
849
  break;
856
850
 
857
851
  case "kqgis3dserver":
858
- var hideLayer = this._scenceShowLayers && this._scenceShowLayers.indexOf(name) === -1;
859
852
  var that = this;
860
853
  promise = this._viewer.addKq3dServerLayerGroupExt(url).then(group => {
861
854
  var layers = group._addedLayers || group._layers;
862
855
 
863
- if (layers) {
864
- var length = layers.length;
865
-
866
- if (length > 1) {
867
- layerData.guid = group.guid;
868
- layerData.children = [];
856
+ if (layers && layers.length > 0) {
857
+ layer = layers[0];
858
+ var serverType = "";
859
+
860
+ if (layer instanceof Cesium.Cesium3DTileset) {
861
+ serverType = "3dtiles";
862
+ } else if (layer instanceof Cesium.ImageryLayer) {
863
+ serverType = "imagerylayer";
864
+ } else if (layer instanceof Cesium.Kq3dFileTerrainProvider || layer instanceof Cesium.CesiumTerrainProvider) {
865
+ serverType = "terrainprovider";
866
+
867
+ that._terrainProviders.push(layer);
868
+ } else if (layer instanceof Cesium.Kq3dGeoJsonDataSource) {
869
+ serverType = "datasource";
869
870
  }
870
871
 
871
- for (var i = 0; i < length; i++) {
872
- var serverType = "";
873
-
874
- if (layers[i] instanceof Cesium.Cesium3DTileset) {
875
- serverType = "3dtiles";
876
- } else if (layers[i] instanceof Cesium.ImageryLayer) {
877
- serverType = "imagerylayer";
878
- } else if (layers[i] instanceof Cesium.Kq3dFileTerrainProvider || layers[i] instanceof Cesium.CesiumTerrainProvider) {
879
- serverType = "terrainprovider";
880
-
881
- that._terrainProviders.push(layers[i]);
882
- } else if (layers[i] instanceof Cesium.Kq3dGeoJsonDataSource) {
883
- serverType = "datasource";
884
- }
885
-
886
- if (!layers[i].guid) layers[i].guid = Cesium.createGuid();
887
-
888
- if (length > 1) {
889
- var child = {
890
- guid: layers[i].guid,
891
- name: layers[i].name,
892
- visible: true,
893
- serverType: serverType
894
- };
895
-
896
- if (hideLayer) {
897
- child.visible = false;
898
-
899
- if (serverType === "terrainprovider") {
900
- layers[i].readyPromise.then(() => {
901
- that._viewer.terrainProvider = that._emptyTerrainProvider;
902
- });
903
- } else {
904
- layers[i].show = false;
905
- }
906
- }
907
-
908
- layerData.children.push(child);
909
- } else {
910
- layerData.guid = layers[i].guid;
911
- layerData.visible = true;
912
- layerData.serverType = serverType;
913
-
914
- if (hideLayer) {
915
- layerData.visible = false;
916
-
917
- if (serverType === "terrainprovider") {
918
- layers[i].readyPromise.then(() => {
919
- that._viewer.terrainProvider = that._emptyTerrainProvider;
920
- });
921
- } else {
922
- layers[i].show = false;
923
- }
924
- }
925
- }
926
- }
872
+ if (!layer.guid) layer.guid = Cesium.createGuid();
873
+ this._guidMapping[layerData.guid] = layer.guid;
874
+ layerData.visible = true;
875
+ layerData.serverType = serverType;
927
876
  }
928
877
  });
929
878
  break;
@@ -934,19 +883,12 @@ class LayerManager {
934
883
  url: url,
935
884
  layerName: layerData.layerName
936
885
  }));
937
- layerData.guid = layer.guid;
886
+ this._guidMapping[layerData.guid] = layer.guid;
938
887
  layerData.visible = true;
939
888
  layerData.serverType = "imagerylayer";
940
-
941
- if (this._scenceShowLayers && this._scenceShowLayers.indexOf(name) === -1) {
942
- layerData.visible = false;
943
- layer.show = false;
944
- }
945
-
946
889
  break;
947
890
 
948
891
  case "kqgismapserver":
949
- layerData.guid = layerData.sourceName + "@@@" + layerData.id;
950
892
  var layerInfo = layerData.sourceLayers.find(item => {
951
893
  return item.id + "" == layerData.id + "";
952
894
  });
@@ -970,11 +912,6 @@ class LayerManager {
970
912
 
971
913
  this._guidMapping[layerData.guid] = layer.guid;
972
914
  layerData.serverType = "imagerylayer";
973
-
974
- if (this._scenceShowLayers && this._scenceShowLayers.indexOf(layerData.name) === -1) {
975
- layerData.visible = false;
976
- layer.show = false;
977
- }
978
915
  }
979
916
 
980
917
  break;
@@ -984,18 +921,10 @@ class LayerManager {
984
921
  name: name,
985
922
  url: url,
986
923
  layers: layerData.id + ""
987
- })); //layerData.guid = layer.guid;
988
-
989
- layerData.guid = layerData.sourceName + "@@@" + layerData.id;
924
+ }));
990
925
  this._guidMapping[layerData.guid] = layer.guid;
991
926
  layerData.visible = true;
992
927
  layerData.serverType = "imagerylayer";
993
-
994
- if (this._scenceShowLayers && this._scenceShowLayers.indexOf(name) === -1) {
995
- layerData.visible = false;
996
- layer.show = false;
997
- }
998
-
999
928
  break;
1000
929
 
1001
930
  case "wms":
@@ -1021,16 +950,10 @@ class LayerManager {
1021
950
  }
1022
951
  }
1023
952
 
1024
- layerData.guid = layerData.sourceName + "@@@" + layerData.id;
1025
953
  this._guidMapping[layerData.guid] = layers[0].guid;
1026
954
  layerData.name = name || layers[0].name;
1027
955
  layerData.visible = true;
1028
956
  layerData.serverType = "imagerylayer";
1029
-
1030
- if (this._scenceShowLayers && this._scenceShowLayers.indexOf(layerData.name) === -1) {
1031
- layerData.visible = false;
1032
- layers[0].show = false;
1033
- }
1034
957
  }
1035
958
  });
1036
959
  break;
@@ -1058,16 +981,10 @@ class LayerManager {
1058
981
  }
1059
982
  }
1060
983
 
1061
- layerData.guid = layerData.sourceName + "@@@" + layerData.id;
1062
984
  this._guidMapping[layerData.guid] = layers[0].guid;
1063
985
  layerData.name = name || layers[0].name;
1064
986
  layerData.visible = true;
1065
987
  layerData.serverType = "imagerylayer";
1066
-
1067
- if (this._scenceShowLayers && this._scenceShowLayers.indexOf(layerData.name) === -1) {
1068
- layerData.visible = false;
1069
- layers[0].show = false;
1070
- }
1071
988
  }
1072
989
  });
1073
990
  break;
@@ -1095,14 +1012,9 @@ class LayerManager {
1095
1012
  this._viewer.dataSources.add(ds);
1096
1013
 
1097
1014
  ds.autoAvoid(this._viewer);
1098
- layerData.guid = ds.guid;
1015
+ this._guidMapping[layerData.guid] = ds.guid;
1099
1016
  layerData.visible = true;
1100
1017
  layerData.serverType = "datasource";
1101
-
1102
- if (this._scenceShowLayers && this._scenceShowLayers.indexOf(name) === -1) {
1103
- layerData.visible = false;
1104
- ds.show = false;
1105
- }
1106
1018
  });
1107
1019
  break;
1108
1020
 
@@ -1115,14 +1027,9 @@ class LayerManager {
1115
1027
  promise = ds.load(url).then(ds => {
1116
1028
  this._viewer.dataSources.add(ds);
1117
1029
 
1118
- layerData.guid = ds.guid;
1030
+ this._guidMapping[layerData.guid] = ds.guid;
1119
1031
  layerData.visible = true;
1120
1032
  layerData.serverType = "datasource";
1121
-
1122
- if (this._scenceShowLayers && this._scenceShowLayers.indexOf(name) === -1) {
1123
- layerData.visible = false;
1124
- ds.show = false;
1125
- }
1126
1033
  });
1127
1034
  break;
1128
1035
 
@@ -1131,14 +1038,9 @@ class LayerManager {
1131
1038
  promise = ds.load(url).then(ds => {
1132
1039
  this._viewer.dataSources.add(ds);
1133
1040
 
1134
- layerData.guid = ds.guid;
1041
+ this._guidMapping[layerData.guid] = ds.guid;
1135
1042
  layerData.visible = true;
1136
1043
  layerData.serverType = "datasource";
1137
-
1138
- if (this._scenceShowLayers && this._scenceShowLayers.indexOf(name) === -1) {
1139
- layerData.visible = false;
1140
- ds.show = false;
1141
- }
1142
1044
  });
1143
1045
  break;
1144
1046
 
@@ -1146,72 +1048,40 @@ class LayerManager {
1146
1048
  layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dTiandituImageryProvider({
1147
1049
  name: name,
1148
1050
  mapStyle: layerData.layerType + "_c"
1149
- })); //layerData.guid = layer.guid;
1150
-
1151
- layerData.guid = layerData.sourceName + "@@@" + layerData.layerType;
1051
+ }));
1152
1052
  this._guidMapping[layerData.guid] = layer.guid;
1153
1053
  layerData.visible = true;
1154
1054
  layerData.serverType = "imagerylayer";
1155
-
1156
- if (this._scenceShowLayers && this._scenceShowLayers.indexOf(name) === -1) {
1157
- layerData.visible = false;
1158
- layer.show = false;
1159
- }
1160
-
1161
1055
  break;
1162
1056
 
1163
1057
  case "baidu":
1164
1058
  layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dBaiduMapsImageryProvider({
1165
1059
  name: name,
1166
1060
  mapStyle: layerData.layerType
1167
- })); //layerData.guid = layer.guid;
1168
-
1169
- layerData.guid = layerData.sourceName + "@@@" + layerData.layerType;
1061
+ }));
1170
1062
  this._guidMapping[layerData.guid] = layer.guid;
1171
1063
  layerData.visible = true;
1172
1064
  layerData.serverType = "imagerylayer";
1173
-
1174
- if (this._scenceShowLayers && this._scenceShowLayers.indexOf(name) === -1) {
1175
- layerData.visible = false;
1176
- layer.show = false;
1177
- }
1178
-
1179
1065
  break;
1180
1066
 
1181
1067
  case "gaode":
1182
1068
  layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dAMapsImageryProvider({
1183
1069
  name: name,
1184
1070
  mapStyle: layerData.layerType
1185
- })); //layerData.guid = layer.guid;
1186
-
1187
- layerData.guid = layerData.sourceName + "@@@" + layerData.layerType;
1071
+ }));
1188
1072
  this._guidMapping[layerData.guid] = layer.guid;
1189
1073
  layerData.visible = true;
1190
1074
  layerData.serverType = "imagerylayer";
1191
-
1192
- if (this._scenceShowLayers && this._scenceShowLayers.indexOf(name) === -1) {
1193
- layerData.visible = false;
1194
- layer.show = false;
1195
- }
1196
-
1197
1075
  break;
1198
1076
 
1199
1077
  case "tencent":
1200
1078
  layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dQQMapsImageryProvider({
1201
1079
  name: name,
1202
1080
  mapStyle: layerData.layerType
1203
- })); //layerData.guid = layer.guid;
1204
-
1205
- layerData.guid = layerData.sourceName + "@@@" + layerData.layerType;
1081
+ }));
1206
1082
  this._guidMapping[layerData.guid] = layer.guid;
1207
1083
  layerData.visible = true;
1208
1084
  layerData.serverType = "imagerylayer";
1209
-
1210
- if (this._scenceShowLayers && this._scenceShowLayers.indexOf(name) === -1) {
1211
- layerData.visible = false;
1212
- layer.show = false;
1213
- }
1214
-
1215
1085
  break;
1216
1086
 
1217
1087
  default:
@@ -1372,6 +1242,33 @@ class LayerManager {
1372
1242
  }
1373
1243
 
1374
1244
  this.recordImageryLayerOriginIndex();
1245
+ } else if (this._layerListData[i].sourceType) {
1246
+ var promise = this.addLayerData(this._layerListData[i]);
1247
+
1248
+ if (promise) {
1249
+ promise.then(() => {
1250
+ adjustLayerIndex(this._layerListData[i]);
1251
+ });
1252
+ } else {
1253
+ adjustLayerIndex(this._layerListData[i]);
1254
+ }
1255
+
1256
+ var that = this;
1257
+
1258
+ function adjustLayerIndex(layerData) {
1259
+ if (layerData.serverType === "imagerylayer") {
1260
+ var addIndex = that.getImageryLayerAddIndex(layerData.guid);
1261
+ layer = that.getLayerByGuid(layerData.guid, layerData.serverType);
1262
+
1263
+ if (layer) {
1264
+ var count = layer._layerIndex - addIndex;
1265
+
1266
+ for (var i = 0; i < count; i++) {
1267
+ that._viewer.imageryLayers.lower(layer);
1268
+ }
1269
+ }
1270
+ }
1271
+ }
1375
1272
  }
1376
1273
  }
1377
1274
  }
@@ -1591,7 +1488,7 @@ class LayerManager {
1591
1488
 
1592
1489
  for (let i = 0; i < layers_checked.length; i++) {
1593
1490
  if (layers_checked[i].combined) {
1594
- getChildren(layers_checked[i].id);
1491
+ getChildren(layers_checked[i]);
1595
1492
  } else {
1596
1493
  layerData.push(layers_checked[i]);
1597
1494
  }
@@ -1599,12 +1496,12 @@ class LayerManager {
1599
1496
 
1600
1497
  return layerData;
1601
1498
 
1602
- function getChildren(parentId) {
1499
+ function getChildren(parent) {
1603
1500
  for (let z = 0; z < layers_old.length; z++) {
1604
- if (layers_old[z].parentLayerId === parentId) {
1501
+ if (layers_old[z].parentLayerId === parent.id && layers_old[z].sourceName === parent.sourceName) {
1605
1502
  // 分组节点
1606
1503
  if (layers_old[z].groupLayer) {
1607
- getChildren(layers_old[z].id);
1504
+ getChildren(layers_old[z]);
1608
1505
  } else {
1609
1506
  layerData.push(layers_old[z]);
1610
1507
  }