管道基础大数据平台系统开发-【前端】-新系統界面
src/components/preview_map.vue
@@ -53,24 +53,30 @@
            @click="underground"
          >地下</el-button>
          <el-button
            v-if="$store.state.previewLayer.type  != '3dml'"
            size="small"
            v-if="$store.state.previewLayer.type  != '3dml' &&
            $store.state.previewLayer.type  !='cpt'"
            size="
            small"
            @click="pickupCoords"
          >拾取</el-button>
          <el-button
            v-if="$store.state.previewLayer.type  != '3dml'"
            size="small"
            v-if="$store.state.previewLayer.type  != '3dml'  &&
            $store.state.previewLayer.type  !='cpt'"
            size="
            small"
            @click="reload"
          >
            重载
          </el-button>
          <el-button
            v-if="modelForm.modelid == null && $store.state.previewLayer.type  != '3dml'"
            v-if="modelForm.modelid == null && $store.state.previewLayer.type  != '3dml'&&
            $store.state.previewLayer.type  !='cpt'"
            size="small"
            @click="getModeKeyId"
          >模型主键</el-button>
          <el-button
            v-if="$store.state.previewLayer.type  != '3dml'"
            v-if="$store.state.previewLayer.type  != '3dml'&&
            $store.state.previewLayer.type  !='cpt'"
            size="small"
            @click="resave"
          >保存</el-button>
@@ -78,7 +84,8 @@
        </el-form-item>
        <el-form-item
          label="经度:"
          v-if="$store.state.previewLayer.type  != '3dml'"
          v-if="$store.state.previewLayer.type  != '3dml'&&
            $store.state.previewLayer.type  !='cpt'"
        >
          <el-input
            size="small"
@@ -95,7 +102,8 @@
        </el-form-item>
        <el-form-item
          label="纬度:"
          v-if="$store.state.previewLayer.type  != '3dml'"
          v-if="$store.state.previewLayer.type  != '3dml'&&
            $store.state.previewLayer.type  !='cpt'"
        >
          <el-input
            size="small"
@@ -112,7 +120,8 @@
        </el-form-item>
        <el-form-item
          label="高度:"
          v-if="$store.state.previewLayer.type  != '3dml'"
          v-if="$store.state.previewLayer.type  != '3dml'&&
            $store.state.previewLayer.type  !='cpt'"
        >
          <el-input
            size="small"
@@ -129,7 +138,8 @@
        </el-form-item>
        <el-form-item
          label="角度:"
          v-if="$store.state.previewLayer.type  != '3dml'"
          v-if="$store.state.previewLayer.type  != '3dml'&&
            $store.state.previewLayer.type  !='cpt'"
        >
          <el-input
            size="small"
@@ -479,7 +489,7 @@
        isJpg: false,
        src: ''
      },
      modelType: ['ifc', 'fbx', 'rvt', '3dml'],
      modelType: ['ifc', 'fbx', 'rvt', '3dml', 'cpt'],
      editModelFlag: false,
      modelForm: {
        lon: 119,
@@ -821,7 +831,7 @@
          new Cesium.Cesium3DTileset({
            name: rs.cnName,
            url: url, //192.168.20.106,to4
            maximumScreenSpaceError: 64, // 最大屏幕空间错误:16
            maximumScreenSpaceError: url.indexOf("/pnts/") > -1 ? 16 : 64, // 最大屏幕空间错误:16
            maximumMemoryUsage: 768, // 最大内存:512
            dynamicScreenSpaceError: true, // 减少离相机较远的屏幕空间错误:false
            skipLevelOfDetail: true, // 在遍历时候跳过详情:false
@@ -930,6 +940,10 @@
      // Viewer.camera.flyTo({
      //   destination: Cesium.Cartesian3.fromDegrees(110, 33, 8000000),
      // });
      if (is_production) {
        Viewer.imageryLayers.removeAll();
      }
      Viewer._enableInfoOrSelection = false;
      //显示fps
      Viewer.scene.debugShowFramesPerSecond = false;
@@ -939,6 +953,25 @@
      // window.sgworld.navControl("scale", false);
      //开启深度检测
      // sg.Analysis.depthTestAgainstTerrain(true)
      if (is_production) {
        var base_ulr = window.sceneConfig.baseUrl;
        if (base_ulr.indexOf('{host}') > -1) {
          base_ulr = base_ulr.replace("{host}", iisHost)
        }
        window.BaseMapLayer = Viewer.imageryLayers.addImageryProvider(
          new Cesium.UrlTemplateImageryProvider({
            url: base_ulr,
          })
        );
      }
      Viewer.scene.globe.depthTestAgainstTerrain = true;
      // window.elevationTool = new SmartEarth.ElevationTool(window.sg);
      // elevationTool.setContourColor("#F1D487");
@@ -958,6 +991,7 @@
        var res = this.$store.state.previewLayer;
        var type = res.type;
        res.ulr = res.url.replace("{host}", iisHost);
        if (type == 'DEM') {
          window.terrainLayer.deleteObject();
          // Viewer.terrainProvider = new Cesium.EllipsoidTerrainProvider();
@@ -992,12 +1026,13 @@
          Viewer.camera.flyTo({
            destination: Cesium.Cartesian3.fromDegrees(wkt.coordinates[1], wkt.coordinates[0], height),
          });
        } else if (type == '3dml' || type == 'fbx' || type == 'ifc' || type == 'rvt') {
        } else if (type == '3dml' || type == 'fbx' || type == 'ifc' || type == 'rvt'
          || type == 'cpt' || type == 'osgb' || type == 'las' || type == 'laz') {
          if (this.app.tileset) viewer.scene.primitives.remove(this.app.tileset);
          this.app.tileset = this.createTileset(res);
          var that = this;
          this.editModelFlag = true;
          Viewer.scene.primitives.add(this.app.tileset).readyPromise.then(function (ts) {
            that.setModleLocatin()
@@ -1164,6 +1199,7 @@
    },
    //显隐
    showTileset() {
      if (!this.app.tileset) return;
      this.app.tileset.show = !this.app.tileset.show;
    },
@@ -1179,7 +1215,7 @@
        name: 'tsTest',
        skipLevelOfDetail: true, // 在遍历时候跳过详情:false
        baseScreenSpaceError: 1024,
        maximumScreenSpaceError: 64, // 最大屏幕空间错误:16,数值加大能让最终成像变模糊
        maximumScreenSpaceError: res.url.indexOf("/pnts/") > -1 ? 16 : 64, // 最大屏幕空间错误:16,数值加大能让最终成像变模糊
        skipScreenSpaceErrorFactor: 16,
        skipLevels: 1,
        immediatelyLoadDesiredLevelOfDetail: false,
@@ -1197,7 +1233,7 @@
      });
    },
    setEditModelLayer(res) {
      this.editModelFlag = true;
      if (res.json) {
        var json = JSON.parse(res.json)
        this.modelForm = json;