|
@@ -2,10 +2,7 @@ import mitt from 'mitt'
|
|
|
import libTransform from 'coordtransform';
|
|
import libTransform from 'coordtransform';
|
|
|
import axios from 'axios' //{ axios } from '@/api'
|
|
import axios from 'axios' //{ axios } from '@/api'
|
|
|
|
|
|
|
|
-//江门
|
|
|
|
|
-//https://192.168.0.50:7173/index.html?caseId=135&mapPlatform=gaode#/fuseEdit/path
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
|
|
+//火调
|
|
|
|
|
|
|
|
let requestLoadCount = 0
|
|
let requestLoadCount = 0
|
|
|
let maxLoadingCount = 2; //正在加载模型的最大数目
|
|
let maxLoadingCount = 2; //正在加载模型的最大数目
|
|
@@ -38,27 +35,7 @@ let defaultMapProps = satellite ? [
|
|
|
},
|
|
},
|
|
|
]
|
|
]
|
|
|
let cesAspect , cesImageryProvider, mapProps = defaultMapProps
|
|
let cesAspect , cesImageryProvider, mapProps = defaultMapProps
|
|
|
- /*
|
|
|
|
|
-let Potree.math = {
|
|
|
|
|
- fromCes(cartesian, getLonlat){
|
|
|
|
|
- var cartographic = Cesium.Cartographic.fromCartesian(cartesian);
|
|
|
|
|
- var lng = Cesium.Math.toDegrees(cartographic.longitude);
|
|
|
|
|
- var lat = Cesium.Math.toDegrees(cartographic.latitude);
|
|
|
|
|
- var height = cartographic.height;
|
|
|
|
|
- let loc = new THREE.Vector3(lng, lat, height)
|
|
|
|
|
- if(getLonlat)return loc
|
|
|
|
|
- return viewer.transform.lonlatToLocal.forward(loc)
|
|
|
|
|
- },
|
|
|
|
|
- toCes(pos){
|
|
|
|
|
- let xy = [pos.x, pos.y];
|
|
|
|
|
- let height = pos.z;
|
|
|
|
|
- let deg = viewer.transform.lonlatToLocal.inverse(xy) // toMap.forward(xy);
|
|
|
|
|
- let cPos = Cesium.Cartesian3.fromDegrees(...deg, height);//console.log('toCes',cPos,height) //数字过大如e35会崩溃
|
|
|
|
|
-
|
|
|
|
|
- return cPos;
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
- */
|
|
|
|
|
|
|
+
|
|
|
const Id_noIntersect = -100 //path绘制在地图上的点,modelId传这个值,勿更改
|
|
const Id_noIntersect = -100 //path绘制在地图上的点,modelId传这个值,勿更改
|
|
|
let isValidPoint = (modelId)=>{//所存的modelId没被删或者它本身不在模型上
|
|
let isValidPoint = (modelId)=>{//所存的modelId没被删或者它本身不在模型上
|
|
|
return modelId == Id_noIntersect || viewer.objs.children.concat(viewer.scene.pointclouds).some(e=>e.dataset_id == modelId )
|
|
return modelId == Id_noIntersect || viewer.objs.children.concat(viewer.scene.pointclouds).some(e=>e.dataset_id == modelId )
|
|
@@ -89,8 +66,7 @@ let curSelectPath
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-//江门本地版本
|
|
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
|
|
|
|
|
export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOSSRoot, panoOSSRoot,ossRoot }) => {
|
|
export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOSSRoot, panoOSSRoot,ossRoot }) => {
|
|
|
|
|
|
|
@@ -108,11 +84,13 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
Potree.settings.urls.prefix = Potree.settings.urls.prefix7
|
|
Potree.settings.urls.prefix = Potree.settings.urls.prefix7
|
|
|
Potree.settings.webSite = 'datav1'
|
|
Potree.settings.webSite = 'datav1'
|
|
|
}
|
|
}
|
|
|
- if(window.offline){//离线版
|
|
|
|
|
-
|
|
|
|
|
|
|
+ if(window.offline){//离线包
|
|
|
|
|
+ //if(isLocal2){//本地配置
|
|
|
|
|
+ Potree.settings.isLocal = Potree.settings.tileOriginUrl = true
|
|
|
|
|
+ //}
|
|
|
Potree.settings.urls.templates = {
|
|
Potree.settings.urls.templates = {
|
|
|
- depthTex : 'swss/{sceneCode}/env/www/{sceneCode}/wwwroot/{sceneCode}/data/{sceneCode}/depthmap',
|
|
|
|
|
- vision : '/swkk/{sceneCode}/env/wwwroot/scene_view_data/{sceneCode}/images/vision.txt'
|
|
|
|
|
|
|
+ depthTex : 'swss/{sceneCode}/www/{sceneCode}/wwwroot/{sceneCode}/data/{sceneCode}/depthmap',
|
|
|
|
|
+ vision : '/swkk/{sceneCode}/wwwroot/scene_view_data/{sceneCode}/images/vision.txt'
|
|
|
}
|
|
}
|
|
|
Potree.fileStorage = {
|
|
Potree.fileStorage = {
|
|
|
get(url){
|
|
get(url){
|
|
@@ -156,17 +134,17 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
const mapBus = mitt(), sceneBus = mitt()
|
|
const mapBus = mitt(), sceneBus = mitt()
|
|
|
|
|
|
|
|
|
|
|
|
|
- let isLocal2 = true
|
|
|
|
|
|
|
+/* let isLocal2 = true
|
|
|
if(isLocal2){//本地配置
|
|
if(isLocal2){//本地配置
|
|
|
Potree.settings.isLocal = Potree.settings.tileOriginUrl = isLocal2
|
|
Potree.settings.isLocal = Potree.settings.tileOriginUrl = isLocal2
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+ */
|
|
|
|
|
|
|
|
Potree.settings.showCompass = true
|
|
Potree.settings.showCompass = true
|
|
|
Potree.settings.compassDom = dom.querySelector('#direction')
|
|
Potree.settings.compassDom = dom.querySelector('#direction')
|
|
|
Potree.settings.mergeType2 = true //标识新版
|
|
Potree.settings.mergeType2 = true //标识新版
|
|
|
Potree.settings.modelSkybox = true //是否将全景图贴在模型上(会导致卡顿)。若不显示模型将不显示Reticule
|
|
Potree.settings.modelSkybox = true //是否将全景图贴在模型上(会导致卡顿)。若不显示模型将不显示Reticule
|
|
|
- Potree.settings.tiles3DMaxMemory = 250 //稍微增加点
|
|
|
|
|
|
|
+ Potree.settings.tiles3DMaxMemory = 300 //稍微增加点
|
|
|
Potree.settings.mergeTransCtlOnClick = true
|
|
Potree.settings.mergeTransCtlOnClick = true
|
|
|
Potree.settings.canWalkThroughModel = true
|
|
Potree.settings.canWalkThroughModel = true
|
|
|
window.cesErrorWords = '内存占用过高,建议关闭部分场景或升级显卡。'
|
|
window.cesErrorWords = '内存占用过高,建议关闭部分场景或升级显卡。'
|
|
@@ -187,9 +165,9 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
viewer.images360.tileDownloader.getTiles = function(d, sceneNum, useV4url, model){
|
|
viewer.images360.tileDownloader.getTiles = function(d, sceneNum, useV4url, model){
|
|
|
let kankan = !model.isPointcloud //ModelTypes[model.props.fromType].panos4dkk
|
|
let kankan = !model.isPointcloud //ModelTypes[model.props.fromType].panos4dkk
|
|
|
if(kankan){
|
|
if(kankan){
|
|
|
- return `/swkk/${sceneNum}/env/wwwroot/scene_view_data/${sceneNum}/images/${d}`
|
|
|
|
|
|
|
+ return `/swkk/${sceneNum}/wwwroot/scene_view_data/${sceneNum}/images/${d}`
|
|
|
}else{
|
|
}else{
|
|
|
- return `/swss/${sceneNum}/env/www/${sceneNum}/scene_view_data/${sceneNum}/images/${d}`
|
|
|
|
|
|
|
+ return `/swss/${sceneNum}/www/${sceneNum}/scene_view_data/${sceneNum}/images/${d}`
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -872,7 +850,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
changeMapTile(urls){
|
|
changeMapTile(urls){
|
|
|
//'http:/a.xxx.com/{x}/{y}/{z}.png'
|
|
//'http:/a.xxx.com/{x}/{y}/{z}.png'
|
|
|
console.log('changeMapTile', urls )
|
|
console.log('changeMapTile', urls )
|
|
|
- if(window.location.href.includes('localhost:7173') || window.location.href.includes('192.168.0.59') ) return
|
|
|
|
|
|
|
+ //if(window.location.href.includes('localhost:7173') || window.location.href.includes('192.168.0.59') ) return
|
|
|
mapProps = urls.map(e=>{
|
|
mapProps = urls.map(e=>{
|
|
|
return {
|
|
return {
|
|
|
maximumLevel : e.maximumLevel,
|
|
maximumLevel : e.maximumLevel,
|
|
@@ -1217,7 +1195,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
let vec = viewer.mainViewport.view.direction.clone().setZ(0).multiplyScalar(size)
|
|
let vec = viewer.mainViewport.view.direction.clone().setZ(0).multiplyScalar(size)
|
|
|
let pos = new THREE.Vector3().addVectors(viewer.mainViewport.view.position, vec)
|
|
let pos = new THREE.Vector3().addVectors(viewer.mainViewport.view.position, vec)
|
|
|
MergeEditor.moveBoundCenterTo(model, pos)
|
|
MergeEditor.moveBoundCenterTo(model, pos)
|
|
|
- console.log('putInFrontOfCam', pos)
|
|
|
|
|
|
|
+ //console.log('putInFrontOfCam', pos)
|
|
|
model.dispatchEvent({type:"position_changed", byControl:true})
|
|
model.dispatchEvent({type:"position_changed", byControl:true})
|
|
|
},
|
|
},
|
|
|
|
|
|
|
@@ -2288,7 +2266,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
if(!tag.parent)return new THREE.Vector3
|
|
if(!tag.parent)return new THREE.Vector3
|
|
|
tag.titleLabel.sprite.update()
|
|
tag.titleLabel.sprite.update()
|
|
|
let pos = tag.onMesh ? tag.position : tag.titleLabel.parent.position.clone().applyMatrix4(tag.matrixWorld).applyMatrix4(tag.root.matrixWorld.clone().invert())
|
|
let pos = tag.onMesh ? tag.position : tag.titleLabel.parent.position.clone().applyMatrix4(tag.matrixWorld).applyMatrix4(tag.root.matrixWorld.clone().invert())
|
|
|
- console.log(props.title, 'getImageCenter', pos.toArray(), tag.lineLength)
|
|
|
|
|
|
|
+ //console.log(props.title, 'getImageCenter', pos.toArray(), tag.lineLength)
|
|
|
return pos
|
|
return pos
|
|
|
|
|
|
|
|
},
|
|
},
|
|
@@ -2541,16 +2519,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
|
|
|
let camera = MergeEditor.split ? viewer.viewports.find(e=>e.name == 'top').camera : viewer.mainViewport.camera
|
|
let camera = MergeEditor.split ? viewer.viewports.find(e=>e.name == 'top').camera : viewer.mainViewport.camera
|
|
|
let pPos = new THREE.Vector3(0, 0, 0).applyMatrix4(camera.matrixWorld);
|
|
let pPos = new THREE.Vector3(0, 0, 0).applyMatrix4(camera.matrixWorld);
|
|
|
|
|
|
|
|
- let orientation
|
|
|
|
|
- /* let toCes = (pos) => {
|
|
|
|
|
- let xy = [pos.x, pos.y];
|
|
|
|
|
- let height = pos.z;
|
|
|
|
|
- let deg = viewer.transform.lonlatToLocal.inverse(xy) // toMap.forward(xy);
|
|
|
|
|
- let cPos = Cesium.Cartesian3.fromDegrees(...deg, height);
|
|
|
|
|
- //console.log('toCes',cPos,height) //数字过大如e35会崩溃
|
|
|
|
|
- return cPos;
|
|
|
|
|
- }; */
|
|
|
|
|
-
|
|
|
|
|
|
|
+ let orientation
|
|
|
let cPos = Potree.math.toCes(pPos);
|
|
let cPos = Potree.math.toCes(pPos);
|
|
|
|
|
|
|
|
|
|
|