|
@@ -5,7 +5,7 @@ import axios from 'axios' //{ axios } from '@/api'
|
|
|
|
|
|
let requestLoadCount = 0
|
|
|
|
|
|
-export const enter = (dom, isLocal) => {
|
|
|
+export const enter = (dom, mapDom, isLocal, lonlat) => {
|
|
|
console.warn('新的页面')
|
|
|
Potree.settings.isOfficial = true //标记为正式、非测试版本
|
|
|
//Potree.fileServer = axios
|
|
@@ -27,8 +27,10 @@ export const enter = (dom, isLocal) => {
|
|
|
|
|
|
Potree.settings.showCompass = true
|
|
|
Potree.settings.compassDom = dom.querySelector('#direction')
|
|
|
+ Potree.settings.showObjectsOnMap = true
|
|
|
|
|
|
- let {THREE} = Potree.mergeEditStart(dom)
|
|
|
+
|
|
|
+ let {THREE} = Potree.mergeEditStart(dom, mapDom)
|
|
|
let MergeEditor = viewer.modules.MergeEditor
|
|
|
let sceneBus = mitt()
|
|
|
|
|
@@ -355,7 +357,7 @@ export const enter = (dom, isLocal) => {
|
|
|
return deferred.promise()
|
|
|
},
|
|
|
|
|
|
-
|
|
|
+
|
|
|
setBackdrop(sky){//天空盒背景
|
|
|
console.log('天空盒背景', sky)
|
|
|
|
|
@@ -373,6 +375,10 @@ export const enter = (dom, isLocal) => {
|
|
|
viewer.setBackground(new THREE.Color(sky))
|
|
|
let color = sky == '#fff' ? '#666' : sky == '#333' ? '#eee' : '#bbb' //反相
|
|
|
setGroundAndText(color)
|
|
|
+ }else if(sky == 'image-map' || sky == 'vector-map' ){//影像|矢量 地图
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}else{
|
|
|
viewer.setBackground('skybox', sky)
|
|
|
setGroundAndText('#e0e0e0')
|
|
@@ -380,8 +386,31 @@ export const enter = (dom, isLocal) => {
|
|
|
|
|
|
viewer.dispatchEvent('content_changed')
|
|
|
},
|
|
|
-
|
|
|
-
|
|
|
+ switchMapType(type){
|
|
|
+ let map = viewer.mapViewer.mapLayer.maps.find(e=>e.name == 'map')
|
|
|
+ map.switchStyle(type/* map.style == 'satellite' ? 'standard' : 'satellite' */)
|
|
|
+ },
|
|
|
+ enableMap(mapArea, latlng){
|
|
|
+
|
|
|
+ if(!viewer.mapViewer){
|
|
|
+ proj4.defs("LOCAL", "+proj=tmerc +ellps=WGS84 +lon_0=" + latlng[1].toPrecision(15) + " +lat_0=" + latlng[0].toPrecision(15)); //高德坐标系
|
|
|
+ proj4.defs("LOCAL_MAP", "+proj=tmerc +ellps=WGS84 +lon_0=" + latlng[1].toPrecision(15) + " +lat_0=" + latlng[0].toPrecision(15)); //地图和本地一样
|
|
|
+ proj4.defs("WGS84", "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs");
|
|
|
+
|
|
|
+ let transform1 = proj4("WGS84", "LOCAL"); //这个ok 是展开的平面投影 LOCAL即NAVVIS:TMERC
|
|
|
+ let transform2 = proj4("+proj=tmerc +lat_0=0 +lon_0=123 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs;");
|
|
|
+ //注:转入后再转出,和原来的有偏差。如果输入是local坐标,数字越大偏差越大,当百万时就明显了。如果是lonlat,很奇怪经度小于50时就乱了。
|
|
|
+ viewer.transform = {
|
|
|
+ lonlatToLocal : transform1,
|
|
|
+ lonlatTo4550 : transform2 // 转大地坐标EPSG:4550
|
|
|
+ }
|
|
|
+ //--------------------------------
|
|
|
+ viewer.mapViewer = new Potree.MapViewer(mapArea)
|
|
|
+ viewer.mapViewer.initProjection()
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
enterSceneGuide(pathArr){//导览 (不需要修改参数)
|
|
|
let editor = viewer.modules.CamAniEditor
|
|
|
console.log('pathArr',pathArr)
|