|
@@ -3,6 +3,7 @@ import mitt from 'mitt'
|
|
|
import axios from 'axios' //{ axios } from '@/api'
|
|
|
|
|
|
let requestLoadCount = 0
|
|
|
+let maxLoadingCount = 2; //正在加载模型的最大数目
|
|
|
//0看看,1看见,2深时,3用户上传三维模型,4深时mesh,5深光点云,6深光mesh
|
|
|
const ModelTypes = {
|
|
|
0 : {name:'看看(八目)', panos4dkk:true},
|
|
@@ -11,7 +12,7 @@ const ModelTypes = {
|
|
|
3 : {name:'用户上传三维模型'},
|
|
|
4 : {name:'深时mesh(激光转台)',panos4dkk:true, rot90:true},//3dtiles
|
|
|
5 : {name:'深光点云' },
|
|
|
- 6 : {name:'深光mesh',panos4dkk:true, rot90:true},
|
|
|
+ 6 : {name:'深光mesh',panos4dkk:true, rot90:true},//3dtiles
|
|
|
}
|
|
|
|
|
|
|
|
@@ -52,9 +53,9 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
|
|
|
Potree.settings.showCesium && buildMap()
|
|
|
*/
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+ //因为getPose里用的是target,俯视的yaw不准,所以限制一下不要完全俯视
|
|
|
+ viewer.mainViewport.view.maxPitch-=0.001
|
|
|
+ viewer.mainViewport.view.minPitch+=0.001
|
|
|
|
|
|
|
|
|
viewer.addEventListener('camera_changed', e => {
|
|
@@ -234,7 +235,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
|
|
|
//isLocal = false
|
|
|
let autoLoads = /* window.autoLoads = */ []
|
|
|
let readyToAddModel
|
|
|
- let maxLoadingCount = 3; //正在加载模型的最大数目
|
|
|
+
|
|
|
|
|
|
let mainBackground = viewer.background
|
|
|
|
|
@@ -446,7 +447,10 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
|
|
|
|
|
|
screenshot: (width, height/* , bgOpacity=0 */ ) => {//
|
|
|
//截图
|
|
|
- let bgOpacity = 0 //因为要画map底图所以上层只能透明。之后需要的话再改
|
|
|
+ let bgOpacity = Potree.settings.showCesium ? 0 : 1 /* viewer.background == 'skybox' */ //因为要画map底图所以上层只能透明。之后需要的话再改
|
|
|
+
|
|
|
+ console.log('bgOpacity', bgOpacity)
|
|
|
+
|
|
|
Potree.Utils.updateVisible(MergeEditor.boxHelper, 'screenshot', false)
|
|
|
var { getImagePromise, finishPromise } = viewer.startScreenshot({ type: 'default', /* useRenderTarget:true, */bgOpacity }, width, height)
|
|
|
var deferred = $.Deferred();
|
|
@@ -558,6 +562,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
|
|
|
|
|
|
if(type == 'map'){
|
|
|
MergeEditor.setGroundPlaneImg(null)
|
|
|
+ viewer.setBackground(mainBackground)
|
|
|
Potree.settings.showCesium = true
|
|
|
buildMap()
|
|
|
viewer.backgroundOpacity = 0
|
|
@@ -1066,6 +1071,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
|
|
|
|
|
|
destroy() {
|
|
|
model && MergeEditor.removeModel(model)
|
|
|
+ result.changeSelect(false)
|
|
|
viewer.dispatchEvent('content_changed')
|
|
|
}
|
|
|
|
|
@@ -1357,19 +1363,20 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
|
|
|
terrainShadows: Cesium.ShadowMode.DISABLED, //terrain地形
|
|
|
});
|
|
|
|
|
|
-
|
|
|
- //lonlat = [113.595236803415,22.3665168584444]//[113.600356,22.364093]
|
|
|
+
|
|
|
Potree.setLonlat(lonlat[0], lonlat[1])
|
|
|
|
|
|
Potree.cesScreenshot = (w,h)=>{
|
|
|
+ console.log('cesScreenshot',w,h)
|
|
|
cesiumViewer.scene.canvas.style.width = w+'px'
|
|
|
cesiumViewer.scene.canvas.style.height = h+'px'
|
|
|
cesiumViewer.resize()
|
|
|
- cesiumViewer.render();
|
|
|
+ updateMap(w/h) //hfov可能改变了需要update
|
|
|
+
|
|
|
let dataUrl = window.cesiumViewer.scene.canvas.toDataURL('image/png')
|
|
|
//Potree.Common.downloadFile(dataUrl, 'screenshot.png')
|
|
|
cesiumViewer.scene.canvas.style.width = ''
|
|
|
- cesiumViewer.scene.canvas.style.height = ''
|
|
|
+ cesiumViewer.scene.canvas.style.height = ''
|
|
|
return dataUrl
|
|
|
}
|
|
|
}
|
|
@@ -1380,7 +1387,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
|
|
|
|
|
|
|
|
|
|
|
|
- function updateMap(){
|
|
|
+ function updateMap(aspect_){
|
|
|
if (Potree.settings.showCesium && Potree.settings.displayMode == 'showPointCloud') {
|
|
|
let camera = viewer.mainViewport.camera
|
|
|
let pPos = new THREE.Vector3(0, 0, 0).applyMatrix4(camera.matrixWorld);
|
|
@@ -1417,7 +1424,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
|
|
|
|
|
|
|
|
|
|
|
|
- let aspect = viewer.scene.getActiveCamera().aspect;
|
|
|
+ let aspect = aspect_ || viewer.scene.getActiveCamera().aspect;
|
|
|
if (aspect < 1) {
|
|
|
let fovy = Math.PI * (viewer.scene.getActiveCamera().fov / 180);
|
|
|
cesiumViewer.camera.frustum.fov = fovy;
|
|
@@ -1445,6 +1452,8 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes }) => {
|
|
|
|
|
|
暂定不同场景间的漫游点不能互通。虽然它们可能是摆放正确的,如果是组成一整个场景的话还是要打通……
|
|
|
不互通的方法是设置pano.enable
|
|
|
+
|
|
|
+ 现在需要互通了。但是还需要设置neibgbours, 有点麻烦,暂时没写。
|
|
|
|
|
|
*/
|
|
|
|