xzw 2 лет назад
Родитель
Сommit
7ef9497559
3 измененных файлов с 27 добавлено и 15 удалено
  1. 9 4
      src/custom/modules/panos/tile/TileDownloader.js
  2. 5 2
      src/custom/start.js
  3. 13 9
      src/custom/viewer/map/Map.js

+ 9 - 4
src/custom/modules/panos/tile/TileDownloader.js

@@ -377,9 +377,14 @@ class TileDownloader extends THREE.EventDispatcher{
 
     
 
-    getTiles(d, sceneNum, useV4url){
+    getTiles(d, sceneNum, useV4url, pointcloud){ 
+        
         if(Potree.settings.isLocal2 && !this.local2SrcFailed || useV4url){//新的地址  scene_view_data/场景码/images/tiles
-            return `${Potree.settings.urls.prefix3}/scene_view_data/${sceneNum}/images/${d}`    
+            if(pointcloud.datasetData.mapping){
+                return `${Potree.settings.urls.prefix3}/${pointcloud.datasetData.mapping}/scene_view_data/${sceneNum}/images/${d}`  
+            }else{
+                return `${Potree.settings.urls.prefix3}/scene_view_data/${sceneNum}/images/${d}` 
+            }    
         }
         
         return `${Potree.settings.urls.prefix3}/images/images${sceneNum}/${d}`    
@@ -480,7 +485,7 @@ TileDownloader.prototype.getTileUrl = function() {
             //1 === config.tiling.customCompression && (u = "_" + config.tiling["q" + e[panoSize]]);
             //1 === o.tiling.customCompression && (u = "_" + o.tiling["q" + e[n]]);
             d = "tiles/" + id + "/" + e[panoSize] + u + "_face" + h + "_" + t.tileX + "_" + t.tileY + ".jpg" 
-            d =  this.getTiles(d, sceneCode, useV4url);
+            d =  this.getTiles(d, sceneCode, useV4url, o.pano.pointcloud);
             g = "?"  
           
         }else{//阿里云oss的规则   if (metadata.sceneScheme == 10) 
@@ -509,7 +514,7 @@ TileDownloader.prototype.getTileUrl = function() {
                 } 
             }
             
-            d = this.getTiles(d, sceneCode, useV4url);
+            d = this.getTiles(d, sceneCode, useV4url, o.pano.pointcloud);
             g = "&" 
         } 
         

+ 5 - 2
src/custom/start.js

@@ -245,8 +245,11 @@ export function start(dom, mapDom, number ){ //t-Zvd3w0m
         data.forEach((dataset,index)=>{  
             if(!ifReload){
                 var datasetCode = dataset.sceneCode || dataset.name //对应4dkk的场景码
-                //var cloudPath = `${Potree.settings.urls.prefix1}/${Potree.settings.webSite}/${datasetCode}/data/${datasetCode}/webcloud/cloud.js` 
-                var cloudPath = `${Potree.settings.urls.prefix1}/${dataset.webBin}`  //webBin添加原因:每次裁剪之类的操作会换路径,因为oss文件缓存太严重,更新慢
+                if(Potree.settings.isLocal && dataset.mapping){
+                    var cloudPath = `${Potree.settings.urls.prefix1}/${dataset.mapping}/${dataset.webBin}`  //webBin添加原因:每次裁剪之类的操作会换路径,因为oss文件缓存太严重,更新慢
+                }else{
+                    var cloudPath = `${Potree.settings.urls.prefix1}/${dataset.webBin}`  //webBin添加原因:每次裁剪之类的操作会换路径,因为oss文件缓存太严重,更新慢
+                }
                 
                 var timeStamp = dataset.updateTime ? dataset.updateTime.replace(/[^0-9]/ig,'') : '';  //每重算一次后缀随updateTime更新一次 
                 //console.warn(dataset.name, 'timeStamp', timeStamp)

+ 13 - 9
src/custom/viewer/map/Map.js

@@ -80,8 +80,8 @@ export class MapLayer extends THREE.EventDispatcher{ // 包括了 MapLayerBase S
             Potree.Log('平面图无数据',{font:'red'})
             return
         }
-        
-        var floorplan = new TiledMapFromEntity(this, this.tileColor, data[0]    )//[0]?
+        data[0].datasetId = datasetId
+        var floorplan = new TiledMapFromEntity(this, this.tileColor, data[0]   )//[0]?
 
         if(floorplan){
             floorplan.name += "_"+ datasetId  
@@ -788,14 +788,18 @@ export class TiledMapFromEntity extends TiledMapBase{
         data.id = e.id
         data.globalLocation = Potree.Utils.VectorFactory.fromArray3(e.location)  
         data.orientation = Potree.Utils.QuaternionFactory.fromArray(e.orientation) 
-        //if(Potree.fileServer){
-            data.filePath = `${Potree.settings.urls.prefix1}${e.file_path}`
-        //}else{
-        //    data.filePath = `${Potree.settings.urls.prefix}/data/${Potree.settings.number}/${e.file_path}`
-        //}
          
-        //if(!data.filePath.includes('building_1'))data.filePath = data.filePath.replace('building','building_1')//暂时
-        data.fileName = '$DEPTH/$X/$Y.png' //e.file_name,
+         
+        let pointcloud = viewer.scene.pointclouds.find(p=>p.dataset_id == e.datasetId) 
+        if(pointcloud.datasetData.mapping){
+            data.filePath = `${Potree.settings.urls.prefix1}/${pointcloud.datasetData.mapping}${e.file_path}` 
+        }else{
+            data.filePath = `${Potree.settings.urls.prefix1}${e.file_path}`
+        }
+        
+        
+          
+        data.fileName = '$DEPTH/$X/$Y.png'  
         data.type = e.type,
         data.mapSizeM = e.map_size_m,
         data.tileSizePx = e.tile_size_px,