xzw 1 rok temu
rodzic
commit
0e6626a01f
3 zmienionych plików z 30179 dodań i 25226 usunięć
  1. 30144 25220
      public/lib/potree/potree.js
  2. 1 1
      public/lib/potree/potree.js.map
  3. 34 5
      src/sdk/cover/index.js

Plik diff jest za duży
+ 30144 - 25220
public/lib/potree/potree.js


Plik diff jest za duży
+ 1 - 1
public/lib/potree/potree.js.map


+ 34 - 5
src/sdk/cover/index.js

@@ -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)