xzw 7 月之前
父節點
當前提交
97fa0386ba
共有 3 個文件被更改,包括 22 次插入12 次删除
  1. 13 4
      public/lib/potree/potree.js
  2. 1 1
      public/lib/potree/potree.js.map
  3. 8 7
      src/sdk/cover/index.js

+ 13 - 4
public/lib/potree/potree.js

@@ -22268,12 +22268,16 @@
 	        url: prop.url
 	      }, _callback3, onprogress);
 	    } else {
-	      //else if(prop.type == 'las' || prop.type == 'ply' || prop.type == 'laz' ) 
 	      prop.url instanceof Array && (prop.url = prop.url[0]); //deal bug
 	      Potree.loadPointCloudScene(prop.url, prop.type, prop.modelId, prop.title, pointcloud => {
 	        {
 	          pointcloud.matrixAutoUpdate = true;
-	          pointcloud.matrix.decompose(pointcloud.position, pointcloud.quaternion, pointcloud.scale); //将数据集的经纬度和旋转应用到rotation和position (注意position和translateUser并不一样)
+	          if (pointcloud.hasLonLat) {
+	            pointcloud.matrix.decompose(pointcloud.position, pointcloud.quaternion, pointcloud.scale); //将数据集的经纬度和旋转应用到rotation和position (注意position和translateUser并不一样)
+	          } else if (!prop.isFirstLoad) {
+	            //点云一般加载后position都不是0, 但后台初始化为0所以先归零要不然撤销后容易错
+	            pointcloud.position.set(0, 0, 0);
+	          }
 	        }
 	        pointcloud.initialPosition = pointcloud.position.clone();
 	        pointcloud.pos1MatrixInvert = new Matrix4().setPosition(pointcloud.initialPosition).invert();
@@ -42412,7 +42416,7 @@
 	var depthProps = {
 	  useDepth: true,
 	  //startClipDis  : 0.5,
-	  clipDistance: 1,
+	  clipDistance: 2,
 	  //消失距离      
 	  //startOcclusDis: 0.5,
 	  occlusionDistance: 0.7,
@@ -84944,7 +84948,12 @@
 	        if (o.dontChangePos) {
 	          position.copy(cameraPos);
 	        } else {
-	          dis = bestDistance;
+	          if (o.maxDis) {
+	            var disNow = cameraPos.distanceTo(target);
+	            dis = MathUtils.clamp(disNow, 1, o.maxDis);
+	          } else {
+	            dis = bestDistance;
+	          }
 	          var _dir5 = o.direction ? o.direction.clone().negate() : this.mainViewport.view.direction.negate(); // */new THREE.Vector3().subVectors(camera.position, target).normalize() 
 	          if (o.dontLookUp && _dir5.z < 0) _dir5.z *= -1;
 	          position.copy(target).add(_dir5.multiplyScalar(dis));

文件差異過大導致無法顯示
+ 1 - 1
public/lib/potree/potree.js.map


+ 8 - 7
src/sdk/cover/index.js

@@ -629,7 +629,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
         comeTo(o = {}) {
             //console.log('comeTo',o.position, o.target)
             //飞到某个点  
-             
+            
             let deferred = $.Deferred()
             if(o.panoId != void 0){
                 let model = o.model.model
@@ -647,9 +647,9 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
                 }else{
                     console.warn('没有找到漫游点',o)
                 }
-            }else if(requestInPano){
+            }/* else if(requestInPano){
                 requestInPano.result_.flyOutPano()
-            }else{
+            } */else{
                 if (o.modelId != void 0) {
                     ['position', 'target'].forEach(e => { 
                         if (o[e]) {
@@ -660,9 +660,9 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
             }
             
 
-            if (o.distance) {
+            if (o.distance || o.maxDis) {
                 let position = o.target || o.position
-                return viewer.focusOnObject({ position }, 'tag', null, { distance: o.distance }).promise
+                return viewer.focusOnObject({ position }, 'tag', null, { distance: o.distance,  maxDis : o.maxDis }).promise
             }
             
 
@@ -921,6 +921,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
                     let msg = {}
                     if (!lastState.position || !model.position.equals(lastState.position)) {
                         lastState.position = msg.position = model.position.clone()
+                        //console.log('change pos', model.position.toArray())
                     }
                     if (!lastState.rotation || !model.rotation.equals(lastState.rotation)) {
                         lastState.rotation = msg.rotation = model.rotation.clone()
@@ -1069,12 +1070,12 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
                     model.dispatchEvent('transformChanged') //改了position */
                 },
                 changePosition(pos) {//校准取消时执行
-                    //console.log('changePosition', pos.x, pos.y, pos.z)
+                    console.log('changePosition', pos.x, pos.y, pos.z)
                     model && model.position.copy(pos)
                     model.dispatchEvent({ type: 'position_changed' })
                 },
                 changeRotation(rot) {//校准取消时执行 
-                    //console.log('changeRotation', rot.x, rot.y, rot.z)
+                    console.log('changeRotation', rot.x, rot.y, rot.z)
                     model && model.rotation.setFromVector3(rot)
                     model.dispatchEvent({ type: 'rotation_changed' })
                 },