xzw 1 年之前
父節點
當前提交
4a314f31be
共有 1 個文件被更改,包括 25 次插入19 次删除
  1. 25 19
      src/custom/viewer/ViewerNew.js

+ 25 - 19
src/custom/viewer/ViewerNew.js

@@ -3252,8 +3252,7 @@ export class Viewer extends ViewerBase{
         }
         
         let screenshot = ()=>{ 
-            let pose
-            
+            let pose 
             useMap && (viewer.mapViewer.needRender = true)
             
             this.needRender = true
@@ -3299,7 +3298,7 @@ export class Viewer extends ViewerBase{
             {//恢复:
                 setTimeout(()=>{
                     if(!this.screenshoting){
-                        Potree.settings.pointNoLimit = false  
+                        //Potree.settings.pointNoLimit = false  
                         Potree.settings.pointDensity = 'high'
                     }
                 },100) //延迟:避免连续多次截图时释放点云
@@ -3420,6 +3419,27 @@ export class Viewer extends ViewerBase{
         //Potree.settings.pointNoLimit = true //使点云加载不受 pointBudget限制, 但缓存还是会有一个最大限制
         Potree.settings.pointDensity = 'screenshot'
             
+        let waitPointLoad = (done)=>{ 
+            done = done || screenshot 
+            let maxTime = 5000;    //注意交通一般要截图两次
+            setTimeout(()=>{
+                if(Potree.pointsLoading){//如果还在加载
+                    let finish
+                    
+                    viewer.addEventListener('pointsLoaded',()=>{ //点云加载完时(不一定准确)
+                        finish || done() 
+                        finish = true
+                    },{once:true})
+                    
+                    setTimeout(()=>{//超时不候
+                        finish || done() 
+                        finish = true
+                    },maxTime)
+                }else{
+                    done() 
+                } 
+            },200)//先加载一段时间
+        }
         
         
         if(info.type == 'measure'){//要截图双屏 
@@ -3475,22 +3495,8 @@ export class Viewer extends ViewerBase{
                 
             })
             
-        }else{ 
-            //viewer.dispatchEvent('content_changed')
-            setTimeout(()=>{
-                if(Potree.pointsLoading){//如果还在加载
-                    viewer.addEventListener('pointsLoaded',()=>{
-                        screenshot() 
-                    },{once:true})
-                }else{
-                    screenshot() 
-                } 
-            },300)//先加载一段时间
-            
-            
-            
-            
-            
+        }else{  
+            waitPointLoad() 
             
             
         }