瀏覽代碼

加载WMTS、WMS

maxiaoxiao 11 月之前
父節點
當前提交
68c3b4bebd
共有 1 個文件被更改,包括 80 次插入71 次删除
  1. 80 71
      src/components/Combinations/LayerManage/LayerManage.vue

+ 80 - 71
src/components/Combinations/LayerManage/LayerManage.vue

@@ -102,6 +102,8 @@ export default {
             this.sceneLayers[obj.title][0][0].visible = visible;
           }
           break;
+        case "wms":
+        case "wmts":
         case "IMG": //影像
           this.layerparams[obj.id].show = visible;
           break;
@@ -151,23 +153,18 @@ export default {
             });
           }
           break;
+        case "wms":
+        case "wmts":
         case "IMG": //影像
-          for (let i = 0; i < imageryLayers._layers.length; i++) {
-            let element = imageryLayers._layers[i];
-            if (element._imageryProvider._name == obj.title) {
-              element.alpha = value;
-              break;
-            }
-          }
-          break;
         case "Vector": //矢量
-          for (let i = 0; i < imageryLayers._layers.length; i++) {
-            let element = imageryLayers._layers[i];
-            if (element._imageryProvider._name == obj.title) {
-              element.alpha = value;
-              break;
-            }
-          }
+          this.layerparams[obj.id].alpha = value;
+          // for (let i = 0; i < imageryLayers._layers.length; i++) {
+          //   let element = imageryLayers._layers[i];
+          //   if (element._imageryProvider._name == obj.title) {
+          //     element.alpha = value;
+          //     break;
+          //   }
+          // }
           break;
         case "Terrain": //地形
           break;
@@ -212,11 +209,11 @@ export default {
     addWMS(obj) {
       let layer = viewer.imageryLayers.addImageryProvider(
         new Cesium.WebMapServiceImageryProvider({
-          url: obj.url, // "http://192.168.60.52:28085/geoserver/wms",
-          layers: "demo:yzq_czkfbj", //"demo:Ahtq_czkfbj",
+          url: obj.url,
+          layers: `${obj.fwgzkj}:${obj.fwmc}`, //"demo:Ahtq_czkfbj",
           parameters: {
-            service: "WMS",
-            format: "image/png",
+            service: obj.type, //"WMS",
+            format: obj.format,
             transparent: true,
             // srs: "EPSG:4326", // 坐标参考系统,可以根据需要更改
           },
@@ -228,12 +225,13 @@ export default {
       return viewer.imageryLayers.addImageryProvider(
         new Cesium.WebMapTileServiceImageryProvider({
           url: obj.url, //'http://192.168.60.52:28085/geoserver/gwc/service/wmts';
-          layer: "demo:czkfbj", // 替换为你的WMTS图层名称
+          layer: `${obj.fwgzkj}:${obj.fwmc}`, //"demo:yzq_czkfbj"
           style: "", // 替换为你的WMTS图层风格
-          tileMatrixSetID: "WebMercatorQuadx2", // 或者其他的EPSG代码
-          format: "image/png",
+          tileMatrixSetID: obj.qpfa, // 或者其他的EPSG代码
+          format: obj.format,
           tilingScheme: new Cesium.WebMercatorTilingScheme(), // 当想要加载EPSG:4326瓦片服务时,只需要创建一个GeographicTilingScheme对象即可
-          maximumLevel: 18, // 根据实际情况设置最大级别
+          maximumLevel: obj.maximumlevel,
+          minimumlevel: obj.minimumlevel,
         })
       );
     },
@@ -338,11 +336,10 @@ export default {
         obj.trans = 100;
         obj.visible = true;
         this.addlayerdata.unshift(obj); //将最新添加的对象放到第一位
-        if (obj.title == "测试WMS") {
-        } else if (obj.title == "测试WMTS") {
-        } else {
+        if (obj.serverType == "geoserver") {
           switch (obj.type) {
             case "wms":
+              // this.vectorlayerlist.push(obj);
               this.layerparams[obj.id] = this.addWMS(obj);
               store.setlayerparamsList(this.layerparams);
               break;
@@ -350,6 +347,10 @@ export default {
               this.layerparams[obj.id] = this.addWMTS(obj);
               store.setlayerparamsList(this.layerparams);
               break;
+          }
+        } else if (obj.serverType == "arcgis") {
+        } else {
+          switch (obj.type) {
             case "S3M": //场景
               let s = viewer.scene.open(obj.url, undefined, {
                 autoSetView: false, // obj.title != "倾斜摄影",
@@ -472,7 +473,7 @@ export default {
             break;
           }
         }
-        delete this.layerparams[obj.id];
+
         switch (obj.type) {
           case "S3M": //场景
             if (this.sceneLayers[obj.title]) {
@@ -501,23 +502,19 @@ export default {
           case "3DTiles": //tileset
             viewer.scene.primitives.remove(this.sceneLayers[obj.title]);
             break;
+          case "wms":
+          case "wmts":
           case "IMG": //影像
-            for (let i = 0; i < imageryLayers._layers.length; i++) {
-              let element = imageryLayers._layers[i];
-              if (element._imageryProvider._name == obj.title) {
-                imageryLayers.remove(element);
-                break;
-              }
-            }
-            break;
           case "Vector": //矢量
-            for (let i = 0; i < imageryLayers._layers.length; i++) {
-              let element = imageryLayers._layers[i];
-              if (element._imageryProvider._name == obj.title) {
-                imageryLayers.remove(element);
-                break;
-              }
-            }
+            imageryLayers.remove(this.layerparams[obj.id]);
+            delete this.layerparams[obj.id];
+            // for (let i = 0; i < imageryLayers._layers.length; i++) {
+            //   let element = imageryLayers._layers[i];
+            //   if (element._imageryProvider._name == obj.title) {
+            //     imageryLayers.remove(element);
+            //     break;
+            //   }
+            // }
             break;
           case "Terrain": //地形
             viewer.scene.terrainProvider = new Cesium.EllipsoidTerrainProvider(
@@ -533,36 +530,48 @@ export default {
     //图层定位
     location(obj) {
       let imageryLayers = viewer.imageryLayers;
-      switch (obj.type) {
-        case "S3M": //场景
-          if (this.sceneLayers[obj.title]) {
+      if (obj.serverType == "geoserver") {
+        switch (obj.type) {
+          case "wms":
+            console.log("11", this.layerparams[obj.id]);
+            break;
+          case "wmts":
+            console.log("11", this.layerparams[obj.id]);
+            break;
+        }
+      } else if (obj.serverType == "arcgis") {
+      } else {
+        switch (obj.type) {
+          case "S3M": //场景
+            if (this.sceneLayers[obj.title]) {
+              viewer.flyTo(this.sceneLayers[obj.title][0][0]);
+            }
+            break;
+          case "S3MDATA": //scp
             viewer.flyTo(this.sceneLayers[obj.title][0][0]);
-          }
-          break;
-        case "S3MDATA": //scp
-          viewer.flyTo(this.sceneLayers[obj.title][0][0]);
-          break;
-        case "3DTiles": //tileset
-          viewer.flyTo(this.sceneLayers[obj.title]);
-          break;
-        case "IMG": //影像
-        case "Vector": //矢量
-          viewer.flyTo(this.layerparams[obj.id]);
-          // for (let i = 0; i < imageryLayers._layers.length; i++) {
-          //   let element = imageryLayers._layers[i];
-          //   if (element._imageryProvider._name == obj.title) {
-          //     viewer.flyTo(element);
-          //     break;
-          //   }
-          // }
-          break;
-        case "Terrain": //地形
-          viewer.scene.terrainProvider = new Cesium.EllipsoidTerrainProvider(
-            {}
-          );
-          break;
-        default:
-          null;
+            break;
+          case "3DTiles": //tileset
+            viewer.flyTo(this.sceneLayers[obj.title]);
+            break;
+          case "IMG": //影像
+          case "Vector": //矢量
+            viewer.flyTo(this.layerparams[obj.id]);
+            // for (let i = 0; i < imageryLayers._layers.length; i++) {
+            //   let element = imageryLayers._layers[i];
+            //   if (element._imageryProvider._name == obj.title) {
+            //     viewer.flyTo(element);
+            //     break;
+            //   }
+            // }
+            break;
+          case "Terrain": //地形
+            viewer.scene.terrainProvider = new Cesium.EllipsoidTerrainProvider(
+              {}
+            );
+            break;
+          default:
+            null;
+        }
       }
     },