Explorar el Código

fix: mapZoomlevel

xzw hace 1 año
padre
commit
b1b0e4be6f
Se han modificado 1 ficheros con 24 adiciones y 2 borrados
  1. 24 2
      src/sdk/cover/index.js

+ 24 - 2
src/sdk/cover/index.js

@@ -25,7 +25,7 @@ export const enter = (dom, mapDom, isLocal, lonlat) => {
     
     
     
-    const mapBus = mitt(), sceneBus = mitt()
+    const sceneBus = mitt()
      
     
     const tagLimitDis = 8;
@@ -262,7 +262,14 @@ export const enter = (dom, mapDom, isLocal, lonlat) => {
     
     
     let sdk = {
-        sceneBus, mapBus,
+        sceneBus,
+
+        getMapZoomLevel:{
+            if(!viewer.mapViewer)return
+            let zoomLevel = viewer.mapViewer.mapLayer.maps[0].zoomLevel
+            let meterPerPixel = 1 / viewer.mapViewer.camera.zoom //原本我设定的每像素代表1米, 然后再除以zoom
+            return { zoomLevel, meterPerPixel }
+        },
         getPositionByScreen(pos2d, hopeModelId ){//通过屏幕坐标获取真实坐标 . hopeModelId: 如果指定了模型,优先返回hopeModelId上的intersect
             //console.log('getPositionByScreen',hopeModelId)
             hopeModelId = null
@@ -465,6 +472,21 @@ export const enter = (dom, mapDom, isLocal, lonlat) => {
                     viewer.mapViewer.moveTo(viewer.bound.center, boundSize,  0)
                 },{once:true})
                 
+                
+                //-------
+                
+                let map = viewer.mapViewer.mapLayer.maps.find(e=>e.name == 'map') 
+                let zoom  
+                viewer.mapViewer.addEventListener('camera_changed', e => {
+                    var camera = e.viewport.camera
+                    /* var pos = camera.position
+                    sceneBus.emit('posChange', { x: pos.x, y: pos.y, z: pos.z, rotate: camera.rotation }) */
+                    
+                    if(zoom !== camera.zoom){
+                        let meterPerPixel = 1 / camera.zoom //原本我设定的每像素代表1米, 然后再除以zoom
+                        sceneBus.emit('mapZoomLevelChange', { zoomLevel:map.zoomLevel , meterPerPixel }) 
+                    }
+                })
             } 
         },