From 56a3bc98cf8cfa03d55340dcbf0c51289fcf766a Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期五, 14 七月 2023 10:52:16 +0800
Subject: [PATCH] mpt裁剪

---
 src/components/preview_map.vue |   90 ++++++++++++++++++++++++++++++++++++++------
 1 files changed, 77 insertions(+), 13 deletions(-)

diff --git a/src/components/preview_map.vue b/src/components/preview_map.vue
index c0a45e4..55b5e5c 100644
--- a/src/components/preview_map.vue
+++ b/src/components/preview_map.vue
@@ -42,25 +42,35 @@
         <el-form-item>
           <el-button
             size="small"
+            v-if="$store.state.previewLayer.type  =='mpt'"
+            @click="setcropping"
+          >瑁佸壀</el-button>
+          <el-button
+            size="small"
+            v-if="$store.state.previewLayer.type  !='mpt'"
             @click="locateTo"
           >瀹氫綅</el-button>
           <el-button
             size="small"
+            v-if="$store.state.previewLayer.type  !='mpt'"
             @click="showTileset"
           >鏄鹃殣</el-button>
           <el-button
             size="small"
+            v-if="$store.state.previewLayer.type  !='mpt'"
             @click="setUndergroundMode"
           >鍦颁笅</el-button>
           <el-button
             v-if="$store.state.previewLayer.type  != '3dml' &&   
-            $store.state.previewLayer.type  !='cpt'"
+            $store.state.previewLayer.type  !='cpt'&&   
+            $store.state.previewLayer.type  !='mpt'"
             size="small"
             @click="pickupCoords"
           >鎷惧彇</el-button>
           <el-button
             v-if="$store.state.previewLayer.type  != '3dml'  &&   
-            $store.state.previewLayer.type  !='cpt'"
+            $store.state.previewLayer.type  !='cpt'&&   
+            $store.state.previewLayer.type  !='mpt'"
             size="small"
             @click="reload"
           >
@@ -68,13 +78,15 @@
           </el-button>
           <el-button
             v-if="modelForm.modelid == null && $store.state.previewLayer.type  != '3dml'&&   
-            $store.state.previewLayer.type  !='cpt'"
+            $store.state.previewLayer.type  !='cpt'&&   
+            $store.state.previewLayer.type  !='mpt'"
             size="small"
             @click="getModeKeyId"
           >妯″瀷涓婚敭</el-button>
           <el-button
             v-if="$store.state.previewLayer.type  != '3dml'&&   
-            $store.state.previewLayer.type  !='cpt'"
+            $store.state.previewLayer.type  !='cpt'   
+             "
             size="small"
             @click="resave"
           >淇濆瓨</el-button>
@@ -83,7 +95,8 @@
         <el-form-item
           label="缁忓害:"
           v-if="$store.state.previewLayer.type  != '3dml'&&   
-            $store.state.previewLayer.type  !='cpt'"
+            $store.state.previewLayer.type  !='cpt'&&   
+            $store.state.previewLayer.type  !='mpt'"
         >
           <el-input
             size="small"
@@ -94,7 +107,8 @@
         <el-form-item
           label="绾害:"
           v-if="$store.state.previewLayer.type  != '3dml'&&   
-            $store.state.previewLayer.type  !='cpt'"
+            $store.state.previewLayer.type  !='cpt'&&   
+            $store.state.previewLayer.type  !='mpt'"
         >
           <el-input
             size="small"
@@ -105,7 +119,8 @@
         <el-form-item
           label="楂樺害:"
           v-if="$store.state.previewLayer.type  != '3dml'&&   
-            $store.state.previewLayer.type  !='cpt'"
+            $store.state.previewLayer.type  !='cpt'&&   
+            $store.state.previewLayer.type  !='mpt'"
         >
           <el-input
             size="small"
@@ -116,7 +131,8 @@
         <el-form-item
           label="瑙掑害:"
           v-if="$store.state.previewLayer.type  != '3dml'&&   
-            $store.state.previewLayer.type  !='cpt'"
+            $store.state.previewLayer.type  !='cpt'&&   
+            $store.state.previewLayer.type  !='mpt'"
         >
           <el-input
             size="small"
@@ -419,7 +435,8 @@
         info: '',
         icon: '',
         bak: '',
-        Id: ''
+        Id: '',
+
       },
       options: [
         {
@@ -461,6 +478,10 @@
         yaw: 0,
         alpha: 1,
         modelid: null,
+        west: null,
+        south: null,
+        east: null,
+        north: null,
       },
       app: {
         tileset: null,
@@ -477,6 +498,30 @@
     this.init3DMap();
   },
   methods: {
+    //瑁佸壀
+    setcropping() {
+      var that = this;
+      sgworld.Creator.SimpleGraphic.clear()
+      sgworld.Creator.SimpleGraphic.edit(false, { editProp: false });
+      sgworld.Creator.createSimpleGraphic(
+        "rectangle", {},
+        function (entity) {
+          that.modelForm.east = Cesium.Math.toDegrees(
+            entity.rectangle.coordinates.getValue().east
+          );
+          that.modelForm.north = Cesium.Math.toDegrees(
+            entity.rectangle.coordinates.getValue().north
+          );
+          that.modelForm.west = Cesium.Math.toDegrees(
+            entity.rectangle.coordinates.getValue().west
+          );
+          that.modelForm.south = Cesium.Math.toDegrees(
+            entity.rectangle.coordinates.getValue().south
+          );
+
+        }
+      );
+    },
     setUndergroundMode() {
       if (window.UndergroundMode) {
         this.$refs &&
@@ -1004,12 +1049,25 @@
           });
 
         } else if (res.url.indexOf('.mpt') != -1) {
+          this.editModelFlag = true;
+
           Viewer.imageryLayers.removeAll();
           var url = res.url.split(';')
-          sgworld.Creator.createImageryProvider('mpt褰卞儚', "wms", {
+
+          var ops = {
             url: url[0],
             layers: url[1]
-          }, "0", undefined, true, "");
+          }
+          if (res.json && JSON.parse(res.json).west) {
+            var val = JSON.parse(res.json)
+
+            ops.rectangle = Cesium.Rectangle.fromDegrees(val.west, val.south, val.east, val.north)
+          }
+          sgworld.Creator.createImageryProvider('mpt褰卞儚', "wms", ops, "0", undefined, true, "");
+
+
+
+
         } else if (res.url.indexOf('menuLayer') != -1) {
           this.setShowModelLayer();
         }
@@ -1035,9 +1093,15 @@
     },
 
     async resave() {
-      if (!this.modelForm.modelid) {
-        return this.$message('鏈�夋嫨妯″瀷涓婚敭ID');
+
+      if (this.$store.state.previewLayer.type != "mpt") {
+        if (!this.modelForm.modelid) {
+          return this.$message('鏈�夋嫨妯″瀷涓婚敭ID');
+        }
+      } else {
+        sgworld.Creator.SimpleGraphic.clear()
       }
+
       this.$store.state.previewLayer.json = JSON.stringify(this.modelForm);
 
       if (this.$store.state.previewLayer.url) {

--
Gitblit v1.9.3