|
@@ -301,7 +301,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
viewer.removeEventListener('camera_changed', camera_changed)
|
|
|
}
|
|
|
}
|
|
|
- let requestInPano = false
|
|
|
+ let requestPanoModel = false
|
|
|
//-------------------------------------
|
|
|
/* viewer.inputHandler.addEventListener('keydown', (e)=>{
|
|
|
if(e.event.key == "e" ){
|
|
@@ -730,8 +730,8 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
}else{
|
|
|
console.warn('没有找到漫游点',o)
|
|
|
}
|
|
|
- }/* else if(requestInPano){
|
|
|
- requestInPano.result_.flyOutPano()
|
|
|
+ }/* else if(requestPanoModel){
|
|
|
+ requestPanoModel.result_.flyOutPano()
|
|
|
} */else{
|
|
|
Potree.settings.displayMode = 'showPointCloud'
|
|
|
|
|
@@ -788,6 +788,8 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
|
|
|
},
|
|
|
comeToByLatLng(lonlat){//飞到指定经纬度
|
|
|
+ requestPanoModel?.result_?.flyOutPano()
|
|
|
+
|
|
|
let pos = viewer.transform.lonlatToLocal.forward(lonlat)
|
|
|
let location = viewer.mainViewport.view.position.clone().setX(pos[0]).setY(pos[1])
|
|
|
viewer.scene.view.setView({position:location, duration:500});
|
|
@@ -1161,7 +1163,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
return model?.panos?.length > 0
|
|
|
},
|
|
|
flyInPano(pano, {dontFly, quaternion, duration}={}) {// 飞入全景图
|
|
|
- requestInPano = model
|
|
|
+ requestPanoModel = model
|
|
|
pano = pano || viewer.images360.findNearestPano(null, model.panos)
|
|
|
if (pano) {
|
|
|
dontFly || viewer.images360.flyToPano({ pano, canCancelLast: true, quaternion, duration})
|
|
@@ -1171,10 +1173,10 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
}
|
|
|
},
|
|
|
flyOutPano() {// 飞出全景图(就是切换到正常融合视角)
|
|
|
- requestInPano = false
|
|
|
+ requestPanoModel = false
|
|
|
Potree.settings.displayMode = 'showPointCloud'
|
|
|
/* setTimeout(() => {//在下一帧再变,因为3dtiles需要更新一下才会显示tiles
|
|
|
- if (!requestInPano) {
|
|
|
+ if (!requestPanoModel) {
|
|
|
Potree.settings.displayMode = 'showPointCloud'
|
|
|
Potree.Utils.updateVisible(MergeEditor.boxHelper, 'showPanos', true)
|
|
|
}
|
|
@@ -1199,13 +1201,17 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
model.position.z += model.boundSize.z / 2
|
|
|
model.dispatchEvent({type:"position_changed", byControl:true}) //compute bound and emit
|
|
|
MergeEditor.history.afterChange(model)
|
|
|
+ viewer.dispatchEvent('content_changed')
|
|
|
+ model.visiChangeCallback && model.visiChangeCallback(true) //3dtiles再更新下可见性
|
|
|
},
|
|
|
|
|
|
- putInFrontOfCam(){//首次加载放在面前,高度和相机一致。(但不保证会不会被遮挡)
|
|
|
+ putInFrontOfCam(){//首次加载放在面前,高度和相机一致。(但不保证会不会被遮挡)
|
|
|
+
|
|
|
let size = Math.max(1, new THREE.Vector2().copy(model.boundSize).length() * 0.7 )
|
|
|
let vec = viewer.mainViewport.view.direction.clone().setZ(0).multiplyScalar(size)
|
|
|
let pos = new THREE.Vector3().addVectors(viewer.mainViewport.view.position, vec)
|
|
|
MergeEditor.moveBoundCenterTo(model, pos)
|
|
|
+ console.log('putInFrontOfCam', pos)
|
|
|
model.dispatchEvent({type:"position_changed", byControl:true})
|
|
|
},
|
|
|
|