Bläddra i källkod

fix: cesium换江门地图

xzw 7 månader sedan
förälder
incheckning
80d66bc283
1 ändrade filer med 30 tillägg och 12 borttagningar
  1. 30 12
      src/sdk/cover/index.js

+ 30 - 12
src/sdk/cover/index.js

@@ -17,7 +17,7 @@ const ModelTypes = {
     6 : {name:'深光mesh',panos4dkk:true, rot90:true},//3dtiles
     7 : {name:'圆周率相机' },//圆周率相机场景
 }
-let cesAspect 
+let cesAspect , cesImageryProvider
 
 
 
@@ -97,7 +97,8 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
     
     let { THREE } = Potree.mergeEditStart(dom, mapDom)
     let MergeEditor = viewer.modules.MergeEditor
-    Potree.settings.unableNavigate = true
+    Potree.settings.unableNavigate = true 
+    
     
     if(window.offline){//离线版 改目录
         viewer.images360.tileDownloader.getTiles = function(d, sceneNum, useV4url, model){ 
@@ -405,7 +406,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
             },
             fly() {
                  
-                let result = viewer.focusOnObject(measure, 'measure', 1200)
+                let result = viewer.focusOnObject(measure, 'measure', 1200, {dontLookUp:measure.type == 'Path'})
  
                 return result.msg ? result.msg : result.promise
                 //返回值 1 deferred 表示即将位移 2 'posNoChange' 表示已在最佳位置 3 'tooFar' 表示距离最佳位置太远 
@@ -689,10 +690,31 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
 
             
         },
-        switchMapType(type) {
+        /* switchMapType(type) {
             let map = viewer.mapViewer.mapLayer.maps.find(e => e.name == 'map')
-            map.switchStyle(type/* map.style == 'satellite' ? 'standard' : 'satellite' */)
+            map.switchStyle(type )
+        }, */
+        switchMapType(type){//切换成江门的卫星或标准 
+            let maximumLevel, url
+            if(type == 'satellite'){
+                maximumLevel = 18
+                url = "http://a.map.jms.gd/tile/weixing/${z}/${x}/${y}.png"
+            }else{
+                maximumLevel = 19
+                url = "http://a.map.jms.gd/tile/gd_xiangtu/${z}/${x}/${y}.png"  
+            }
+            cesImageryProvider = Cesium.UrlTemplateImageryProvider({ //直接用84坐标,不用转高德
+                url,  
+                minimumLevel: 0,
+                maximumLevel 
+            }) 
+            if(Potree.settings.showCesium){
+                cesiumViewer.imageryLayers.removeAll();
+                cesiumViewer.imageryLayers.addImageryProvider(cesImageryProvider);
+            }
         },
+        
+        
         enableMap(mapArea, latlng) {
 
             if (!viewer.mapViewer) {
@@ -1902,12 +1924,7 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
                 timeline: false,
                 navigationHelpButton: false,
                 //imageryProvider : Cesium.createOpenStreetMapImageryProvider({url : 'https://a.tile.openstreetmap.org/'}),
-                imageryProvider: Cesium.UrlTemplateImageryProvider({ //直接用84坐标,不用转高德
-
-                    //"https://wprd04.is.autonavi.com/appmaptile?lang=zh_cn&style=7&yrs=m&x=${x}&y=${y}&z=${z}"    //  
-
-
-                    //url : 'https://webst0{0-7}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}&token=YOUR_API_KEY',
+                imageryProvider: cesImageryProvider || Cesium.UrlTemplateImageryProvider({ //直接用84坐标,不用转高德
                     url: 'https://wprd04.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}&token=YOUR_API_KEY',
                     minimumLevel: 0,
                     maximumLevel: 19
@@ -2000,7 +2017,8 @@ export const enter = ({ dom, mapDom, isLocal, lonlat, scenes, laserRoot, laserOS
 
 
     function updateCamFar(){ 
-        Potree.settings.cameraFar = THREE.Math.clamp(viewer.bound.boundingBox.distanceToPoint(viewer.mainViewport.camera.position)+viewer.bound.boundSize.length(), 10000, 100000000000)
+        let expand = 1.1 //for label
+        Potree.settings.cameraFar = THREE.Math.clamp((viewer.bound.boundingBox.distanceToPoint(viewer.mainViewport.camera.position)+viewer.bound.boundSize.length() ) * expand  , 10000, 100000000000)
          
     }