管道基础大数据平台系统开发-【前端】-新系統界面
Surpriseplus
2023-03-24 c42e12bcc0877678cf09438b7a6bfb9ccd7342fa
src/components/mapsdk.vue
@@ -297,41 +297,47 @@
          </div>
        </el-card>
      </div>
      <div style="display: flex">
      <!--      <div style="display: flex;">-->
      <div
        class="changeTerrain"
        @click="changeTerrainLayer"
      >
        <div
          @click="changeMenulayer"
          class="center CenDiv"
          :class="{ center1: centerFlag }"
        >
          <div
            id="cenBg"
            v-bind:class="{ active: isActive, menuLayer: isMenuLayer }"
          ></div>
        </div>
        <div
          @click="changeMapType"
          class="changeMapType"
        >
          <div
            id="cenBg"
            :class="show2DMap ? 'mapTypeTwo' : 'mapTypeThree'"
          ></div>
        </div>
          title="地形切换"
          id="cenBg"
          class="mapTerrain"
        ></div>
      </div>
      <!--      class="center CenDiv"-->
      <div
        @click="changeMenulayer"
        class="changeLayer"
      >
        <div
          title="底图切换"
          id="cenBg"
          class="mapBaseMap"
        ></div>
      </div>
      <div
        @click="changeMapType"
        class="changeMapType"
      >
        <div
          title="2/3维切换"
          id="cenBg"
          :class="show2DMap ? 'mapTypeTwo' : 'mapTypeThree'"
        ></div>
      </div>
      <!--      </div>-->
      <!-- 坡度分析弹窗-->
      <div
        class="lengend"
        v-show="showLengendDialog"
      >
        <el-card class="box-card">
          <!-- <div
            class="lengend_color"
            style="height:205px"
          >
          </div> -->
          <div class="lengendBox">
            <div>
              <img
                class="lengendImg"
@@ -345,8 +351,65 @@
              <div>52.5°</div>
              <div>70°</div>
            </div>
          </div>
        </el-card>
      </div>
      <div
        class="HistLeng"
        v-show="$store.state.histLenged"
      >
        <el-card class="box-card">
          <table>
            <tr>
              <td>粉质黏土</td>
              <td>
                <div style="width:100px;height:20px;background:rgba(139,106,77,1)">
                </div>
              </td>
            </tr>
            <tr>
              <td>淤泥质粉土</td>
              <td>
                <div style="width:100px;height:20px;background:rgba(141,85,69,1)">
                </div>
              </td>
            </tr>
            <tr>
              <td>圆砾</td>
              <td>
                <div style="width:100px;height:20px;background:rgba(102,166,184,1)">
                </div>
              </td>
            </tr>
            <tr>
              <td>卵石</td>
              <td>
                <div style="width:100px;height:20px;background:rgba(54,83,173,1)">
                </div>
              </td>
            </tr>
            <tr>
              <td>泥岩</td>
              <td>
                <div style="width:100px;height:20px;background:rgba(47,30,13,1)">
                </div>
              </td>
            </tr>
            <tr>
              <td>细砂</td>
              <td>
                <div style="width:100px;height:20px;background:rgba(93,88,15,1)">
                </div>
              </td>
            </tr>
            <tr>
              <td>中砂</td>
              <td>
                <div style="width:100px;height:20px;background:rgba(164,140,21,1)">
                </div>
              </td>
            </tr>
          </table>
        </el-card>
      </div>
      <!--属性信息弹窗-->
@@ -559,11 +622,13 @@
          v-if="dialog.isJpg"
          class="pdfClass"
        >
          <img
            style="width:100%; height:100%;"
          <el-image
            style="width:100%; height:100%"
            :src="dialog.src"
            alt=""
          />
            :preview-src-list="[dialog.src]"
          >
          </el-image>
        </div>
      </el-dialog>
      <!--      <div-->
@@ -578,6 +643,7 @@
      <!--      </div>-->
    </div>
    <model-property ref='modelProperty'></model-property>
  </div>
</template>
@@ -585,7 +651,7 @@
import $ from "jquery";
import mapMenuTop from "./MapView/mapMenuTop.vue";
import mapSpaceTop from "./MapView/mapSpaceTop.vue";
import ModelProperty from '../views/Tools/ModelProperty.vue'
import {
  select_Comprehensive_ByPageAndCount,
  select_Comprehensive_SelectWktById,
@@ -599,6 +665,7 @@
  components: {
    mapMenuTop,
    mapSpaceTop,
    ModelProperty
  },
  data() {
@@ -700,7 +767,8 @@
      attributeList: [],
      valueZ: 0,
      valueX: 0,
      valueY: 0
      valueY: 0,
      terrainflag: false,
    };
  },
  mounted() {
@@ -748,13 +816,14 @@
              window.pickedColor = window.pickedFeature.color
              window.pickedFeature.color = Cesium.Color.RED.withAlpha(0.3);
              this.$store.state.catModel = true;
              this.$store.state.catModelInfo = {
              // this.$store.state.catModel = true;
              that.$store.state.catModelInfo = {
                id: pickedFeature.getProperty("id"),
                name: pickedFeature.getProperty("name"),
                layerId: pickedFeature.primitive.layerId,
                layerName: pickedFeature.primitive.id
              };
              that.$refs && that.$refs.modelProperty && that.$refs.modelProperty.open();
            }
          }
        }
@@ -826,14 +895,47 @@
        layerName: window.sceneConfig.mptName,
        requestVertexNormals: true,
      };
      sgworld.Creator.sfsterrainprovider("", option, "", true, "");
      window.terrainLayer = sgworld.Creator.sfsterrainprovider("", option, "", true, "");
      window.elevationTool = new SmartEarth.ElevationTool(window.sgworld);
      elevationTool.setContourColor("#F1D487");
    },
    //dem切换
    changeTerrainLayer() {
      if (this.terrainflag) {
        Viewer.terrainProvider = new Cesium.EllipsoidTerrainProvider();
        var option = {
          url: window.sceneConfig.SGUrl,
          layerName: window.sceneConfig.mptName,
          requestVertexNormals: true,
        };
        window.terrainLayer = sgworld.Creator.sfsterrainprovider("", option, "", true, "");
        Viewer.camera.flyTo({
          destination: Cesium.Cartesian3.fromDegrees(110, 33, 8000000),
        });
      } else {
        window.terrainLayer.deleteObject();
        window.terrainLayer = null;
        window.terrainLayer = new Cesium.CesiumTerrainProvider({
          url: LFData + '/3d/terrain/dem20230321'
        });
        Viewer.terrainProvider = window.terrainLayer
        Viewer.camera.flyTo({
          destination: Cesium.Cartesian3.fromDegrees(113.229279, 31.215949, 1000),
          orientation: {
            heading: 6.08434611923462,
            pitch: Cesium.Math.toRadians(-45.0),
            roll: 0.0
          }
        });
      }
      this.terrainflag = !this.terrainflag
    },
    changeMenulayer() {
      this.$bus.$emit("setChangeBaseMapLayer", true)
      // this.$refs && this.$refs.addOnlineMap && this.$refs.addOnlineMap.open("地下模式", null,);
@@ -1639,7 +1741,12 @@
      position: absolute;
      z-index: 40;
    }
    .HistLeng {
      z-index: 40;
      position: absolute;
      right: 115px;
      bottom: 10px;
    }
    .lengend {
      width: 300px;
      z-index: 40;
@@ -1717,15 +1824,15 @@
.CenDiv {
  position: absolute;
  bottom: 1%;
  left: 1%;
  left: calc(1% + 75px);
  height: 40px;
  width: 60px;
  z-index: 101;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-shadow: 3px 3px 6px #666;
  border: 1px solid rgba(204, 204, 204, 0.76);
  // box-shadow: 3px 3px 6px #666;
  // border: 1px solid rgba(204, 204, 204, 0.76);
  border-radius: 5px;
  cursor: pointer;
}
@@ -1743,9 +1850,9 @@
  flex-direction: column;
  justify-content: space-between;
}
.CenDiv:hover {
  border: 1px solid #409eff;
}
// .CenDiv:hover {
//   border: 1px solid #409eff;
// }
.active {
  width: 100%;
  height: 100%;
@@ -1763,37 +1870,112 @@
  border-radius: 5px;
}
.changeMapType {
.mapBaseMap {
  width: 100%;
  height: 100%;
  //margin-left: 10px;
  background-image: url("../assets/img/basemap.png");
  //background-image: url("../assets/img/synthesis/底图.png");
  background-repeat: no-repeat;
  background-size: contain;
}
//.changeMapType {
//  position: absolute;
//  bottom: 1%;
//  left: calc(1% + 150px);
//  height: 40px;
//  width: 60px;
//  z-index: 101;
//  display: flex;
//  justify-content: center;
//  align-items: center;
//  // box-shadow: 3px 3px 6px #666;
//  //border: 1px solid rgba(204, 204, 204, 0.76);
//  border-radius: 5px;
//
//  cursor: pointer;
//}
.changeTerrain {
  position: absolute;
  bottom: 1%;
  left: calc(1% + 75px);
  height: 40px;
  width: 60px;
  bottom: 84px;
  right: 46px;
  height: 30px;
  width: 30px;
  z-index: 101;
  display: flex;
  justify-content: center;
  align-items: center;
  // box-shadow: 3px 3px 6px #666;
  //border: 1px solid rgba(204, 204, 204, 0.76);
  border-radius: 5px;
  cursor: pointer;
  border: 1px solid rgba(255, 255, 255, 0.5);
}
.changeLayer {
  position: absolute;
  bottom: 116px;
  right: 46px;
  height: 30px;
  width: 30px;
  z-index: 101;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  border: 1px solid rgba(255, 255, 255, 0.5);
}
.changeMapType {
  position: absolute;
  bottom: 52px;
  right: 46px;
  height: 30px;
  width: 30px;
  z-index: 101;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  border: 1px solid rgba(255, 255, 255, 0.5);
}
//.changeTerrain {
//  position: absolute;
//  bottom: 1%;
//  left: 1%;
//  height: 40px;
//  width: 60px;
//  z-index: 101;
//  display: flex;
//  justify-content: center;
//  align-items: center;
//
//  border-radius: 5px;
//  cursor: pointer;
//}
.mapTypeTwo {
  width: 100%;
  height: 100%;
  margin-left: 10px;
  background-image: url("../assets/img/synthesis/3D.png");
  background-image: url("../assets/img/3D.png");
  //background-image: url("../assets/img/synthesis/3D.png");
  background-repeat: no-repeat;
  background-size: contain;
  //background-size: contain;
}
.mapTerrain {
  width: 100%;
  height: 100%;
  //margin-left: 10px;
  //background-image: url("../assets/img/synthesis/地形.png");
  //background-image: url("../assets/img/synthesis/地形.png");
  background-image: url("../assets/img/terrain.png");
  background-repeat: no-repeat;
  //background-size: contain;
}
.mapTypeThree {
  width: 100%;
  height: 100%;
  margin-left: 10px;
  background-image: url("../assets/img/synthesis/2D 拷贝 2.png");
  //margin-left: 10px;
  background-image: url("../assets/img/2D.png");
  background-repeat: no-repeat;
  background-size: contain;
  //background-size: contain;
}
.pdfClass {