|
@@ -25,7 +25,7 @@ export const enter = (dom, mapDom, isLocal, lonlat) => {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- const mapBus = mitt(), sceneBus = mitt()
|
|
|
|
|
|
+ const sceneBus = mitt()
|
|
|
|
|
|
|
|
|
|
const tagLimitDis = 8;
|
|
const tagLimitDis = 8;
|
|
@@ -262,7 +262,14 @@ export const enter = (dom, mapDom, isLocal, lonlat) => {
|
|
|
|
|
|
|
|
|
|
let sdk = {
|
|
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
|
|
getPositionByScreen(pos2d, hopeModelId ){//通过屏幕坐标获取真实坐标 . hopeModelId: 如果指定了模型,优先返回hopeModelId上的intersect
|
|
//console.log('getPositionByScreen',hopeModelId)
|
|
//console.log('getPositionByScreen',hopeModelId)
|
|
hopeModelId = null
|
|
hopeModelId = null
|
|
@@ -465,6 +472,21 @@ export const enter = (dom, mapDom, isLocal, lonlat) => {
|
|
viewer.mapViewer.moveTo(viewer.bound.center, boundSize, 0)
|
|
viewer.mapViewer.moveTo(viewer.bound.center, boundSize, 0)
|
|
},{once:true})
|
|
},{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 })
|
|
|
|
+ }
|
|
|
|
+ })
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
|