xzw 5 months ago
parent
commit
751da23c2f

+ 3 - 2
src/custom/modules/panos/Panorama.js

@@ -235,11 +235,12 @@ class Panorama extends THREE.EventDispatcher{
         if(!this.pointcloud.hasDepthTex || this.depthTex || this.depthTexLoading)return
         this.depthTexLoading = true
         let mapping = Potree.settings.isLocal2 ? '' : this.pointcloud.datasetData.mapping //非离线包的话加mapping
-        let src 
+        let src  
         if(Potree.settings.urls.templates.depthTex){
             src = Potree.Common.replaceAll(Potree.settings.urls.templates.depthTex, '{sceneCode}',  this.pointcloud.sceneCode) + `/${this.originID}.png` 
         }else{
-            src = `${Potree.settings.urls.prefix1}/${mapping?(mapping+'/'):''}${Potree.settings.webSite}/${this.pointcloud.sceneCode}/data/${this.pointcloud.sceneCode}/depthmap/${this.originID}.png` 
+            let prefix = Potree.settings.urls.getPrefix(1,this.pointcloud)//Potree.settings.urls.laserOSSRoot || this.pointcloud.prop?.raw?.laserOssRoot ||  Potree.settings.urls.prefix1
+            src = `${prefix}/${mapping?(mapping+'/'):''}${Potree.settings.webSite}/${this.pointcloud.sceneCode}/data/${this.pointcloud.sceneCode}/depthmap/${this.originID}.png` 
         }
         //console.log('开始下载depthImg', this.id)
         let texture = texLoader.load( src, ()=>{

+ 3 - 3
src/custom/modules/panos/tile/TileDownloader.js

@@ -392,14 +392,14 @@ class TileDownloader extends THREE.EventDispatcher{
           
         let v3OrV4Str = useV4url ? `/scene_view_data/${sceneNum}/images/` : `/images/images${sceneNum}/`
         
-        
+        let prefix = Potree.settings.urls.getPrefix(3,pointcloud) //Potree.settings.urls.panoOssRoot || pointcloud.prop?.raw?.panoOssRoot ||  Potree.settings.urls.prefix3
         if(Potree.settings.isLocal && !this.local2SrcFailed && pointcloud.datasetData.mapping && !Potree.settings.isLocal2){   //非离线包的话加mapping  
             
-            return `${Potree.settings.urls.prefix3}/${pointcloud.datasetData.mapping}${v3OrV4Str}${d}`  
+            return `${prefix}/${pointcloud.datasetData.mapping}${v3OrV4Str}${d}`  
              
         }
         
-        return `${Potree.settings.urls.prefix3}${v3OrV4Str}${d}`    
+        return `${prefix}${v3OrV4Str}${d}`    
         
         
         

+ 23 - 0
src/custom/settings.js

@@ -81,6 +81,29 @@ const config = {//配置参数   不可修改
             }
             return prefix
         },
+        setPrefix(num, url ){
+            this.urls['prefix'+num] = url
+            if(num === 1){
+                this.urls.laserOSSRoot = url
+            }else if(num === 3){
+                this.urls.panoOSSRoot = url
+            } 
+        },
+        getPrefix(num, object){ 
+            let prefix, name 
+            if(num === 1){
+                name = 'laserOSSRoot' 
+            }else if(num === 3){
+                name = 'panoOSSRoot'
+            } 
+            
+            let getFromModel = ()=>{
+                let prop = (object.prop || object)?.raw
+                return prop && prop[name] 
+            }
+            prefix = this.urls[name] || getFromModel() || this.urls['prefix'+num]
+            return prefix  
+        },
         templates : {
             
         }       

+ 8 - 8
src/custom/start.js

@@ -717,9 +717,9 @@ export function mergeEditStart(dom, mapDom){
     }
     
     Potree.settings.sizeFitToLevel = true//当type为衰减模式时自动根据level调节大小。每长一级,大小就除以2
-    Potree.loadPointCloudScene = function(url, type, id, title, done, onError, prefix){//对应4dkk的场景码
+    Potree.loadPointCloudScene = function(url, type, id, title, done, onError, prefix1, prefix2 ){//对应4dkk的场景码
         let dataset , useLonLat
-        let loadCloud = ({cloudPath, sceneName, sceneCode, timeStamp, color } )=>{
+        let loadCloud = ({cloudPath, sceneName, sceneCode, timeStamp, color  } )=>{
             
             Potree.loadPointCloud(cloudPath, sceneName , sceneCode, timeStamp, e => {
                 
@@ -773,17 +773,17 @@ export function mergeEditStart(dom, mapDom){
             let sceneCode = url 
             let load = ()=>{
                 Potree.loadDatasets((data)=>{ 
-                let originDataset = data.find(e=>e.sceneCode == sceneCode);//只加载初始数据集  
+                    let originDataset = data.find(e=>e.sceneCode == sceneCode);//只加载初始数据集  
                     /* if(!originDataset){
                         //应该是data为空,原因未知
                     } */
                     
                     let timeStamp = originDataset.updateTime ? originDataset.updateTime.replace(/[^0-9]/ig,'') : '';  //每重算一次后缀随updateTime更新一次 
                     //let cloudPath = `${Potree.settings.urls.prefix1}/${Potree.settings.webSite}/${sceneCode}/data/${sceneCode}/webcloud/cloud.js` 
-                    let cloudPath = `${Potree.settings.urls.prefix1}/${originDataset.webBin}`  //webBin添加原因:每次裁剪之类的操作会换路径,因为oss文件缓存太严重,更新慢
+                    let cloudPath = `${prefix2}/${originDataset.webBin}`  //webBin添加原因:每次裁剪之类的操作会换路径,因为oss文件缓存太严重,更新慢
                     dataset = originDataset
-                    loadCloud({cloudPath, sceneName:originDataset.sceneName, sceneCode, timeStamp, color:originDataset.color})
-                }, sceneCode, onError, prefix)
+                    loadCloud({ cloudPath, sceneName:originDataset.sceneName, sceneCode, timeStamp, color:originDataset.color})
+                }, sceneCode, onError, prefix1 )
             } 
             if(Potree.settings.queryCloudLonLatUrl){
                 Potree.loadControlPoint((ctlData)=>{
@@ -1132,7 +1132,7 @@ export function mergeEditStart(dom, mapDom){
              
             prop.url instanceof Array && (prop.url = prop.url[0]) //deal bug
             
-            
+            let cloudPrefix = Potree.settings.urls.getPrefix(1, prop)
             Potree.loadPointCloudScene(prop.url, prop.type, prop.modelId, prop.title, (pointcloud)=>{   
                 { 
                     pointcloud.matrixAutoUpdate = true
@@ -1156,7 +1156,7 @@ export function mergeEditStart(dom, mapDom){
                 }
                 
                 
-            }, onError, prop.prefix)
+            }, onError, prop.prefix, cloudPrefix)