Procházet zdrojové kódy

加载3dtiles提交

wanger před 1 rokem
rodič
revize
7b8faf5959

+ 32 - 0
src/components/Combinations/LayerManage/LayerManage.vue

@@ -259,6 +259,11 @@ export default {
             this.sceneLayers[obj.title][0][0].visible = visible;
             this.sceneLayers[obj.title][0][0].visible = visible;
           }
           }
           break;
           break;
+        case "3DTiles": //场景
+          if (this.sceneLayers[obj.title]) {
+            this.sceneLayers[obj.title].show = visible;
+          }
+          break;
         case "S3MDATA": //scp
         case "S3MDATA": //scp
           if (this.sceneLayers[obj.title]) {
           if (this.sceneLayers[obj.title]) {
             this.sceneLayers[obj.title][0][0].visible = visible;
             this.sceneLayers[obj.title][0][0].visible = visible;
@@ -306,6 +311,13 @@ export default {
               new Cesium.Color(1.0, 1.0, 1.0, value);
               new Cesium.Color(1.0, 1.0, 1.0, value);
           }
           }
           break;
           break;
+        case "3DTiles": //tileset
+          if (this.sceneLayers[obj.title]) {
+            this.sceneLayers[obj.title].style = new Cesium.Cesium3DTileStyle({
+              color: "color('rgba(255,255,255," + value + ")')",
+            });
+          }
+          break;
         case "IMG": //影像
         case "IMG": //影像
           for (let i = 0; i < imageryLayers._layers.length; i++) {
           for (let i = 0; i < imageryLayers._layers.length; i++) {
             let element = imageryLayers._layers[i];
             let element = imageryLayers._layers[i];
@@ -344,6 +356,16 @@ export default {
       });
       });
     },
     },
 
 
+    add3DTiles(obj) {
+      let tileset = new Cesium.Cesium3DTileset({
+        url: obj.url,
+        skipLevelOfDetail: true,
+      });
+      this.sceneLayers[obj.title] = tileset;
+      let thisLayer = viewer.scene.primitives.add(tileset);
+      viewer.flyTo(thisLayer);
+    },
+
     addImage(LayerURL) {
     addImage(LayerURL) {
       var layer = viewer.imageryLayers.addImageryProvider(
       var layer = viewer.imageryLayers.addImageryProvider(
         new Cesium.SuperMapImageryProvider({
         new Cesium.SuperMapImageryProvider({
@@ -418,6 +440,10 @@ export default {
                 name: obj.title,
                 name: obj.title,
               });
               });
               break;
               break;
+            case "3DTiles": //tileset
+              this.add3DTiles(obj);
+              this.vectorlayerlist.push(obj);
+              break;
             case "IMG": //影像
             case "IMG": //影像
               let layer = viewer.imageryLayers.addImageryProvider(
               let layer = viewer.imageryLayers.addImageryProvider(
                 new Cesium.SuperMapImageryProvider({
                 new Cesium.SuperMapImageryProvider({
@@ -490,6 +516,9 @@ export default {
             case "S3MDATA": //scp
             case "S3MDATA": //scp
               viewer.scene.layers.remove(obj.title);
               viewer.scene.layers.remove(obj.title);
               break;
               break;
+            case "3DTiles": //tileset
+              viewer.scene.primitives.remove(this.sceneLayers[obj.title]);
+              break;
             case "IMG": //影像
             case "IMG": //影像
               for (let i = 0; i < imageryLayers._layers.length; i++) {
               for (let i = 0; i < imageryLayers._layers.length; i++) {
                 let element = imageryLayers._layers[i];
                 let element = imageryLayers._layers[i];
@@ -555,6 +584,9 @@ export default {
         case "S3MDATA": //scp
         case "S3MDATA": //scp
           viewer.flyTo(this.sceneLayers[obj.title][0][0]);
           viewer.flyTo(this.sceneLayers[obj.title][0][0]);
           break;
           break;
+        case "3DTiles": //tileset
+          viewer.flyTo(this.sceneLayers[obj.title]);
+          break;
         case "IMG": //影像
         case "IMG": //影像
           for (let i = 0; i < imageryLayers._layers.length; i++) {
           for (let i = 0; i < imageryLayers._layers.length; i++) {
             let element = imageryLayers._layers[i];
             let element = imageryLayers._layers[i];

+ 4 - 0
src/components/Viewer/smViewer.vue

@@ -46,6 +46,10 @@ export default {
       if (window.viewer) {
       if (window.viewer) {
         return;
         return;
       }
       }
+      var obj = [6378137.0, 6378137.0, 6356752.3142451793];
+      Cesium.Ellipsoid.WGS84 = Object.freeze(
+        new Cesium.Ellipsoid(obj[0], obj[1], obj[2])
+      );
       let viewer;
       let viewer;
       let isPCBroswer = (window.isPCBroswer =
       let isPCBroswer = (window.isPCBroswer =
         Cesium.FeatureDetection.isPCBroswer());
         Cesium.FeatureDetection.isPCBroswer());