| | |
| | | import $store from "../index"; |
| | | import $store from '../index' |
| | | import axios from 'axios' |
| | | |
| | | import urlParameter from './mobiles/urlParameter' |
| | | window.popupsDom = null // mobileDivForms的实体类 |
| | | window.flytoPosition = null // mobileDivForms的实体类 |
| | | window.ellipsoid = null |
| | | window.cartographic = null |
| | | |
| | | window.useHeight = null |
| | | window.vecLayer = null |
| | | window.vecLayer = null |
| | | window.pointLayer = null |
| | | window.drawALineLayerMany = null // 活动线 |
| | | window.drawALineLayerManycolor = null // 活动线颜色 |
| | | window.drawALineLayerManyStyle = null // 活动线样式 |
| | | window.drawALineLayerManypolyline = null // 活动线样式 |
| | | window.drawAPointLayerMany = null // 活动点 |
| | | window.drawAPointLayerManyposition = null // 活动点位置 |
| | | window.drawAPointLayerManyLabels = null // 活动点 |
| | | // window.tilesetLayer = null; |
| | | // window.wallLayer = null; |
| | | window.areaLayer = null |
| | | window.tileset = null |
| | | window.drawALineLayer = null // 导航路径图层 |
| | | window.drawALineLayerGCJ02StartLngLat = null // 导航路径图层转坐标 |
| | | window.drawALineLayerGCJ02EndLngLat = null // 导航路径图层转坐标 |
| | | window.drawALineLayerdrawALine = null // 导航路径画线方法 |
| | | window.drawALineLayerIcon = null // 导航路径图层图标 |
| | | window.billboarddaohang = null // 导航点 |
| | | window.positiondaohang = null // 导航点位置 |
| | | window.polylinedaohang = null // 导航线 |
| | | window.polylinematerialdaohang = null // 导航线属性 |
| | | |
| | | window.select = { |
| | | // 绿色图层控制显示 |
| | | overlay: undefined, |
| | | color: undefined |
| | | } |
| | | |
| | | window.tancuanPosition = null |
| | | |
| | | // window.newLayer = null; |
| | | // window.usetowpointfive = null; |
| | | |
| | | const mobile = { |
| | | state: { |
| | | mviewer: null, // 地图实体类 |
| | | mBigPopup: false, // 全屏弹窗 |
| | | popupOurOpenData: [], // 全屏弹窗中下拉菜单数据 |
| | | popupTableName: [], // 全屏弹窗标签页数据 |
| | | mBigPopupAfter: false, /// /全屏弹窗之前的弹窗 |
| | | ips: "", // 获取的ip |
| | | iconHide: false, // 右侧伸缩状态 |
| | | // DC: '',//DC全局保存 |
| | | MobileWindowsHide: true, // 改变点击窗口的显示状态 |
| | | MobileWindowChangeData: false, // 改变点击窗口的数据 |
| | | popupsDom: "", // mobileDivForms的实体类 |
| | | query: {}, // 传输数据 |
| | | openmobileGoTo: false, // 测试 |
| | | ccDataState: false, // 测试 |
| | | openmobilePanorama: false, // 实景显影 |
| | | MobileWindowsHideFixed: true, // 改变点击窗口的显示状态--固定窗口 |
| | | MobileWindowChangeDataFixed: false, // 改变点击窗口的数据--固定窗口 |
| | | // 在每次飞行弹窗中 加入自己的点 |
| | | pointLayer: null, |
| | | pointLayerData: { |
| | | flag: false, |
| | | label: "选择点", |
| | | img: "/img/leftnav/way.png", |
| | | normal: "/img/leftnav/way.png", |
| | | checked: "/img/leftnav/way-checked.png", |
| | | layer: "pointLayer", |
| | | }, |
| | | // 默认起始点函数 |
| | | startPointFn: "", |
| | | dimension: "3D", // 维度 |
| | | dimensionData: { |
| | | // 维度镜头数据 |
| | | heading: 0, |
| | | pitch: -90, |
| | | roll: 0, |
| | | }, |
| | | perspectiveControl: "", //视角控制:高度、角度 ()=>{} |
| | | perspectiveControls: "", //视角控制:高度、角度 ()=>{} |
| | | |
| | | tilesetLayer: null, //3d模型 |
| | | tileset: null, //3d模型 |
| | | tilesetLayer: null, //2.5d模型 |
| | | usetowpointfive: null, |
| | | tilesetLayer: null, //瀑布流 |
| | | }, |
| | | mutations: { |
| | | MSET_VIEWER(state, viewer) { |
| | | state.mviewer = viewer; |
| | | }, |
| | | MSET_BIGPOPUP(state, viewer) { |
| | | state.mBigPopup = viewer; |
| | | $store.dispatch("closeMobileWindowsDom"); // 关闭弹窗 |
| | | }, |
| | | MSET_BIGPOPUPAFTER(state, viewer) { |
| | | state.mBigPopupAfter = viewer; |
| | | $store.dispatch("closeMobileWindowsDom"); // 关闭弹窗 |
| | | }, |
| | | MSET_POPUPOUROPENDATA(state, viewer) { |
| | | state.popupOurOpenData = viewer; |
| | | }, |
| | | MSET_ICONHIDE(state, viewer) { |
| | | state.iconHide = viewer; |
| | | }, |
| | | MSET_POPUPTABLENAME(state, viewer) { |
| | | state.popupTableName = viewer; |
| | | }, |
| | | MSET_MOBILEWINDOWSHIDE(state, viewer) { |
| | | // 随地图移动窗口 |
| | | state.MobileWindowChangeData = !state.MobileWindowChangeData; |
| | | state.MobileWindowsHide = viewer; |
| | | }, |
| | | MSETCC_SETCC(state, viewer) { |
| | | state.ccDataState = !state.ccDataState; // 专门测试 |
| | | state.query = viewer; |
| | | }, |
| | | MSET_POPUPDOM(state, viewer) { |
| | | state.popupsDom = viewer; |
| | | }, |
| | | MSET_QUERY(state, viewer) { |
| | | state.query = viewer; |
| | | }, |
| | | MSET_OPENMOBILEGOTO(state, viewer) { |
| | | state.openmobileGoTo = viewer; |
| | | }, |
| | | MSET_OPENMOBILEPANORAMA(state, viewer) { |
| | | state.openmobilePanorama = viewer; |
| | | }, |
| | | MSET_MOBILEWINDOWSHIDEFIXED(state, viewer) { |
| | | // 固定窗口 |
| | | state.MobileWindowChangeDataFixed = !state.MobileWindowChangeDataFixed; |
| | | state.MobileWindowsHideFixed = viewer; |
| | | console.log(state.MobileWindowChangeDataFixed); |
| | | }, |
| | | // 默认位置 |
| | | MSET_MORENWEIZHI(state, data) { |
| | | state.startPointFn = data; |
| | | }, |
| | | // // 开关飞入点图标 |
| | | // MSET_OPENPOINTEL(state, val) { |
| | | // if (val) { |
| | | // state.pointLayerData.img = state.pointLayerData.checked |
| | | // state[state.pointLayerData.layer].show = true |
| | | // } else { |
| | | // state.pointLayerData.img = state.pointLayerData.normal |
| | | // state[state.pointLayerData.layer].show = false |
| | | // } |
| | | // }, |
| | | //切换2D和2.5D |
| | | MSET_DIMENSION(state, data) { |
| | | //关闭弹窗 |
| | | |
| | | //3d,2.5d转换事件 |
| | | state.dimension = data; |
| | | if (data == "3D") { |
| | | // 改数据为3d数据 |
| | | state.dimensionData = { |
| | | // 维度镜头数据 |
| | | heading: 0, |
| | | pitch: -45, |
| | | roll: 0, |
| | | }; |
| | | // console.log(1321) |
| | | state.wallLayer.show = false; //关闭瀑布 以及2.5d图形贴片 |
| | | state.mviewer.imageryLayers.remove(state.newLayer); |
| | | state.newLayer = null; |
| | | // state.silhouetteBlue.selected = [] |
| | | state.tilesetLayer.changesilhouetteBlue(); //清空silhouetteBlue.selected = []; |
| | | // console.log(state.tileset) |
| | | state.tilesetLayer.show = true; //显示3d图形 |
| | | state.startPointFn(); //移动默认视角 |
| | | // state.mviewer.flyTo(state.tileset); |
| | | |
| | | //3D视角不限制 |
| | | state.mviewer.scene.screenSpaceCameraController.minimumZoomDistance = 100; |
| | | // 最大 |
| | | state.mviewer.scene.screenSpaceCameraController.maximumZoomDistance = 4000000; |
| | | // 设置相机缩小时的速率 |
| | | state.mviewer.scene.screenSpaceCameraController._minimumZoomRate = 3000; |
| | | // 设置相机放大时的速率 |
| | | state.mviewer.scene.screenSpaceCameraController._maximumZoomRate = 3000; |
| | | // 视角平移 |
| | | state.mviewer.scene.screenSpaceCameraController.enableRotate = true; |
| | | // 视角缩放 |
| | | state.mviewer.scene.screenSpaceCameraController.enableZoom = true; |
| | | // 视角旋转 |
| | | state.mviewer.scene.screenSpaceCameraController.enableTilt = true; |
| | | } else if (data == "2.5D") { |
| | | state.dimensionData = { |
| | | // 维度镜头数据 |
| | | heading: 0, |
| | | pitch: -90, |
| | | roll: 0, |
| | | }; |
| | | state.tilesetLayer.show = false; //隐藏3d图形 |
| | | state.newLayer = state.usetowpointfive(); //添加2.5d图形贴片 |
| | | state.wallLayer.show = true; //打开瀑布 |
| | | state.startPointFn(); //移动默认视角 |
| | | |
| | | //2.5D视角限制 |
| | | state.mviewer.scene.screenSpaceCameraController.minimumZoomDistance = 500; |
| | | // 最大 |
| | | state.mviewer.scene.screenSpaceCameraController.maximumZoomDistance = 6000; |
| | | // 设置相机缩小时的速率 |
| | | state.mviewer.scene.screenSpaceCameraController._minimumZoomRate = 30000; |
| | | // 设置相机放大时的速率 |
| | | state.mviewer.scene.screenSpaceCameraController._maximumZoomRate = 5906376272000; |
| | | // 视角平移 |
| | | state.mviewer.scene.screenSpaceCameraController.enableRotate = true; |
| | | // 视角缩放 |
| | | state.mviewer.scene.screenSpaceCameraController.enableZoom = true; |
| | | // 视角旋转 |
| | | state.mviewer.scene.screenSpaceCameraController.enableTilt = false; |
| | | } |
| | | }, |
| | | //切换控制 |
| | | MSET_PERSPECTIVECONTROL(state, data) { |
| | | state.perspectiveControl = data; |
| | | state.perspectiveControls = !state.perspectiveControls; |
| | | }, |
| | | MSET_MODEOLS(state, data) { |
| | | state.tilesetLayer = data.tilesetLayer; |
| | | state.newLayer = data.newLayer; |
| | | state.wallLayer = data.wallLayer; |
| | | state.tileset = data.tileset; |
| | | state.usetowpointfive = data.usetowpointfive; |
| | | }, |
| | | }, |
| | | actions: { |
| | | MSET_CREADE({ state, commit, dispatch }) { |
| | | state.pointLayer = new global.DC.VectorLayer("pointLayer"); // 创建图标实体类 |
| | | state.mviewer.addLayer(state.pointLayer); // 添加到地图 |
| | | }, |
| | | setMobileWindows({ state, commit, dispatch }, data) { |
| | | // 打开随地图移动窗口 |
| | | let clas, Flys; |
| | | const nowHeight = Math.ceil( |
| | | state.mviewer.camera.positionCartographic.height |
| | | ); |
| | | console.log(data); |
| | | if (state.dimension == "3D") { |
| | | Flys = [ |
| | | +data.lntLat[0] + 0.01197, |
| | | // +data.lntLat[1] - 0.0001, |
| | | +data.lntLat[1] - 0.0027, |
| | | 330, |
| | | ]; |
| | | clas = [ |
| | | data.from == "PopupOurOnce" ? +data.lntLat[0] : +data.lntLat[0], |
| | | // data.from == 'PopupOurOnce' ? +data.lntLat[1] - 0.00108 : +data.lntLat[1], |
| | | data.from == "PopupOurOnce" |
| | | ? +data.lntLat[1] - 0.00108 |
| | | : +data.lntLat[1] - 0.00048, |
| | | data.from == "PopupOurOnce" ? 0 : 90.648862227, |
| | | ]; |
| | | } else if (state.dimension == "2.5D") { |
| | | Flys = [ |
| | | +data.lntLat[0] + 0.01197, |
| | | +data.lntLat[1] - 0.0001, |
| | | // +data.lntLat[1] - 0.0022, |
| | | nowHeight, |
| | | ]; |
| | | clas = [ |
| | | data.from == "PopupOurOnce" ? +data.lntLat[0] : +data.lntLat[0], |
| | | data.from == "PopupOurOnce" |
| | | ? +data.lntLat[1] - 0.00108 |
| | | : +data.lntLat[1], |
| | | // data.from == 'PopupOurOnce' ? +data.lntLat[1] - 0.00108 : +data.lntLat[1] - 0.00048, |
| | | // data.from == 'PopupOurOnce' ? 0 : 90.648862227 |
| | | data.from == "PopupOurOnce" ? 0 : 0, |
| | | ]; |
| | | } |
| | | |
| | | if (data.useJWD) { |
| | | var ellipsoid = state.mviewer.scene.globe.ellipsoid; |
| | | var cartographic = global.DC.Namespace.Cesium.Cartographic.fromDegrees( |
| | | // data.lntLat[0], |
| | | // data.lntLat[1] - 0.00048,//数值增大是下 |
| | | // "90.648862227" |
| | | // clnt, clat, calt |
| | | ...clas |
| | | ); |
| | | data.position = ellipsoid.cartographicToCartesian(cartographic); |
| | | } |
| | | // 传递响应数据 |
| | | commit("MSET_QUERY", data); |
| | | // 定制化窗体 |
| | | const popupsDom = new global.DC.mobileDivForms(state.mviewer, { |
| | | domId: "mobilePopup", |
| | | title: data.query.name || "成教楼 ", |
| | | className: "mobilePopup", |
| | | content: document.getElementById("mobile-map_content_content"), |
| | | position: [data.position], |
| | | }); |
| | | // commit("MSET_MOBILEWINDOWSHIDE", false)//显示弹窗 |
| | | // dispatch("CHANGETOC3", { // 转换坐标 |
| | | // lnt: data.lntLat[0], |
| | | // lat: data.lntLat[1] |
| | | // }).then(res => { |
| | | // console.log(res) |
| | | |
| | | // 基于高度基础设置 |
| | | // h:1530 |
| | | // lnt: + 0.01187 x轴 大是向左 |
| | | // Lat: - 0.0108 y轴 减是上 |
| | | // h:4000 |
| | | // lnt: + 0.01187 x轴 |
| | | // Lat: - 0.0308 y轴 |
| | | // h:330 |
| | | // lnt: + 0.01197 x轴 |
| | | // Lat: - 0.0021 y轴 |
| | | // console.log(data.query.from, 78) |
| | | // let Flys = [ |
| | | // data.query.from == "地图点击" ? +data.lntLat[0] + 0.01197 : +data.lntLat[0] + 0.01197, |
| | | // data.query.from == "地图点击" ? +data.lntLat[1] - 0.0021 : +data.lntLat[1] - 0.0021, |
| | | // data.query.from == "地图点击" ? 330 : 330, |
| | | // ] |
| | | |
| | | const Position = new global.DC.Position( // 转坐标 |
| | | // +data.lntLat[0] + 0.01197, |
| | | // +data.lntLat[1] - 0.0021, |
| | | // 330, |
| | | ...Flys, |
| | | 0, |
| | | state.dimensionData.pitch |
| | | ); |
| | | dispatch("mapFlyTo", { |
| | | //飞入 |
| | | lntLat: [Position.lng, Position.lat, Position.alt], |
| | | heading: Position.heading, |
| | | pitch: Position.pitch, |
| | | roll: Position.roll, |
| | | }); |
| | | // }) |
| | | commit("MSET_POPUPDOM", popupsDom); |
| | | }, |
| | | closeMobileWindowsDom({ state, commit }) { |
| | | if (!state.MobileWindowsHide && state.popupsDom) { |
| | | state.popupsDom.closeOur(); |
| | | commit("MSET_MOBILEWINDOWSHIDE", true); |
| | | } |
| | | }, |
| | | CHANGETOC3({ state, commit }, data) { |
| | | // //转换经纬度坐标 成世界坐标cartesian3 |
| | | var ellipsoid = state.mviewer.scene.globe.ellipsoid; |
| | | var cartographic = global.DC.Namespace.Cesium.Cartographic.fromDegrees( |
| | | data.lnt, |
| | | data.lat - 0.00006, |
| | | data.alt || "90.648862227" |
| | | ); |
| | | var position = ellipsoid.cartographicToCartesian(cartographic); |
| | | return position; |
| | | }, |
| | | SET_OPENWIDOWFIXED({ state, commit }, data) { |
| | | // 传递响应数据 |
| | | commit("MSET_QUERY", data); |
| | | // 显示窗口 |
| | | commit("MSET_MOBILEWINDOWSHIDEFIXED", false); |
| | | // 移动地图位置 |
| | | state.mviewer.zoomToPosition( |
| | | new global.DC.Position( |
| | | data.lntLat[0], |
| | | data.lntLat[1] - 0.012, |
| | | 1530, |
| | | 0, |
| | | -45 |
| | | ) |
| | | ); |
| | | }, |
| | | CLOSE_WIDOWFIXED({ state, commit }) { |
| | | // 隐藏窗口 |
| | | if (!state.MobileWindowsHideFixed) { |
| | | console.log(state.MobileWindowsHideFixed); |
| | | commit("MSET_MOBILEWINDOWSHIDEFIXED", true); |
| | | } |
| | | }, |
| | | // 加入当时的选点 |
| | | JOIN_POINT({ state, commit }, data) {}, |
| | | // flyTo |
| | | mapFlyTo({ state, commit, dispatch }, data) { |
| | | state.mviewer.camera.flyTo({ |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees( |
| | | data.lntLat[0] - 0.012, |
| | | data.lntLat[1], |
| | | data.lntLat[2] || 15000.0 |
| | | ), |
| | | // destination: data.res, |
| | | orientation: { |
| | | heading: global.DC.Namespace.Cesium.Math.toRadians(data.heading), |
| | | pitch: global.DC.Namespace.Cesium.Math.toRadians(data.pitch), |
| | | // heading: data.heading, |
| | | // pitch: data.pitch, |
| | | roll: data.roll, |
| | | state: { |
| | | ...urlParameter.state, // url参数 |
| | | // mviewer: null, // 地图实体类 |
| | | mBigPopup: false, // 全屏弹窗 |
| | | popupOurOpenData: [], // 全屏弹窗中下拉菜单数据 |
| | | popupTableName: [], // 全屏弹窗标签页数据 |
| | | mBigPopupAfter: false, /// /全屏弹窗之前的弹窗 |
| | | ips: '', // 获取的ip |
| | | iconHide: true, // 右侧伸缩状态 |
| | | // DC: '',//DC全局保存 |
| | | MobileWindowsHide: true, // 改变点击窗口的显示状态 |
| | | MobileWindowChangeData: false, // 改变点击窗口的数据 |
| | | // popupsDom: '', // mobileDivForms的实体类 |
| | | query: {}, // 传输数据 |
| | | openmobileGoTo: false, // 测试 |
| | | ccDataState: false, // 测试 |
| | | openmobilePanorama: false, // 实景显影 |
| | | MobileWindowsHideFixed: true, // 改变点击窗口的显示状态--固定窗口 |
| | | MobileWindowChangeDataFixed: false, // 改变点击窗口的数据--固定窗口 |
| | | // 在每次飞行弹窗中 加入自己的点 |
| | | // pointLayer: null, |
| | | pointLayerData: { |
| | | flag: false, |
| | | label: '选择点', |
| | | img: '/img/leftnav/way.png', |
| | | normal: '/img/leftnav/way.png', |
| | | checked: '/img/leftnav/way-checked.png', |
| | | layer: 'pointLayer' |
| | | }, |
| | | duration: 1.5, // 定位的时间间隔 |
| | | complete: () => { |
| | | // 完成后的回调 |
| | | if (data.fn) { |
| | | // 自定义回调 |
| | | setTimeout(() => { |
| | | data.fn(); |
| | | }, 500); |
| | | } |
| | | if (!data.noOpen) { |
| | | setTimeout(() => { |
| | | // dispatch("MSET_POINTDATA", data.lntLat);//传入标记点 |
| | | !state.MobileWindowsHide || |
| | | commit("MSET_MOBILEWINDOWSHIDE", false); // 显示弹窗 |
| | | }, 0); |
| | | } |
| | | dimension: '2.5D', // 维度 |
| | | dimensionData: { |
| | | // 维度镜头数据 |
| | | heading: 0, |
| | | pitch: -90, |
| | | roll: 0 |
| | | }, |
| | | }); |
| | | // 官网flyto使用方法 |
| | | // 1. Fly to a position with a top-down view |
| | | // viewer.camera.flyTo({ |
| | | // destination : Cesium.Cartesian3.fromDegrees(-117.16, 32.71, 15000.0) |
| | | // }); |
| | | zoomRange: [100, 1000], // 缩放程度 |
| | | frislayertHeight: 160, // 默认弹窗高度 |
| | | perspectiveControl: '', // 视角控制:高度、角度 ()=>{} |
| | | perspectiveControls: '', // 视角控制:高度、角度 ()=>{} |
| | | |
| | | // // 2. Fly to a Rectangle with a top-down view |
| | | // viewer.camera.flyTo({ |
| | | // destination : Cesium.Rectangle.fromDegrees(west, south, east, north) |
| | | // }); |
| | | // tilesetLayer: null, // 3d模型 |
| | | // tileset: null, // 3d模型 |
| | | // tilesetLayer: null, // 2.5d模型 |
| | | // usetowpointfive: null, |
| | | // wallLayer: null, // 瀑布流 |
| | | // areaLayer: null, // 2.5d事件--绿色图层 |
| | | // select: { |
| | | // // 绿色图层控制显示 |
| | | // overlay: undefined, |
| | | // color: undefined |
| | | // }, |
| | | |
| | | // // 3. Fly to a position with an orientation using unit vectors. |
| | | // viewer.camera.flyTo({ |
| | | // destination : Cesium.Cartesian3.fromDegrees(-122.19, 46.25, 5000.0), |
| | | // orientation : { |
| | | // direction : new Cesium.Cartesian3(-0.04231243104240401, -0.20123236049443421, -0.97862924300734), |
| | | // up : new Cesium.Cartesian3(-0.47934589305293746, -0.8553216253114552, 0.1966022179118339) |
| | | // } |
| | | // }); |
| | | // vecLayer: null, // 3D底图 |
| | | // cvaLayer: null, // 3D底图 |
| | | |
| | | // // 4. Fly to a position with an orientation using heading, pitch and roll. |
| | | // viewer.camera.flyTo({ |
| | | // destination : Cesium.Cartesian3.fromDegrees(-122.19, 46.25, 5000.0), |
| | | // orientation : { |
| | | // heading : Cesium.Math.toRadians(175.0), |
| | | // pitch : Cesium.Math.toRadians(-35.0), |
| | | // roll : 0.0 |
| | | // } |
| | | // }); |
| | | audioData: null, // 语音 |
| | | audioState: false, // 语音状态 |
| | | |
| | | navigationStartLngLat: '', // 导航起点 |
| | | navigationEndLngLat: '', // 导航终点 |
| | | // drawALineLayer: null, // 导航路径图层 |
| | | // drawALineLayerIcon: null, // 导航路径图层图标 |
| | | isOpenDrawALine: false, // 是否开启路径 |
| | | endPosition: '', // 传送终点经纬度-- |
| | | isendPosition: false, // 传送终点经纬度--感应数据 |
| | | routerS: [], // 所有路径 |
| | | choiceRouterS: 0, // 当前选择路径 |
| | | |
| | | showActivity: false, // 是否显示活动弹窗 |
| | | showActivityData: {}, // 活动内容 |
| | | |
| | | // drawALineLayerMany: null, // 活动路线图层 |
| | | // drawAPointLayerMany: null, // 活动点图层 |
| | | isOpenDrawALineMany: null, // 是否开启活动 |
| | | seeRight: true, // 右侧控制栏显影 |
| | | pinchFlag: false |
| | | }, |
| | | // 飞入点加入位置 |
| | | MSET_POINTDATA({ state, commit, dispatch }, data) { |
| | | // 加入坐标 |
| | | const positions = new global.DC.Position( |
| | | data[0] - 0.0119, |
| | | data[1] + 0.0111, |
| | | 0 |
| | | ); |
| | | const billboard = new global.DC.Billboard( |
| | | positions, |
| | | "/img/leftnav/map-panorama.png" |
| | | ); |
| | | billboard.size = [16, 16]; |
| | | // 订阅事件3 |
| | | billboard.on(DC.MouseEventType.CLICK, (e) => { |
| | | // 定制化窗体 |
| | | console.log(e); |
| | | const query = { name: "选择点" }; |
| | | const intLat = [e.wgs84Position.lng, e.wgs84Position.lat]; |
| | | const d = { |
| | | position: null, |
| | | lntLat: intLat, |
| | | query: { ...(query || {}), introduce: null, address: intLat }, |
| | | useJWD: true, // 仅使用经纬度 |
| | | }; |
| | | dispatch("setMobileWindows", d); |
| | | }); |
| | | state.pointLayer.addOverlay(billboard); // 实景 |
| | | // commit("MSET_OPENPOINTEL", true); |
| | | }, |
| | | MSET_LOCKPERSPECTIVEL({ state, commit, dispatch }, val) { |
| | | // 锁定 |
| | | state.mviewer.camera.lookAtTransform( |
| | | global.DC.Namespace.Cesium.Matrix4.IDENTITY |
| | | ); |
| | | // console.log(global.DC.Namespace.Cesium.Matrix4.IDENTITY) |
| | | }, |
| | | MSET_DIMENSIONS({ state, commit, dispatch }, val) { |
| | | //关闭弹窗 |
| | | dispatch("closeMobileWindowsDom"); |
| | | //3d,2.5d转换事件 |
| | | commit("MSET_DIMENSION", val); |
| | | //控制高度 |
| | | const height = Math.ceil( |
| | | state.mviewer.camera.positionCartographic.height |
| | | ); |
| | | state.mviewer.camera.setView({ |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians( |
| | | state.mviewer.camera.positionCartographic.longitude, |
| | | state.mviewer.camera.positionCartographic.latitude, |
| | | height |
| | | ), |
| | | orientation: { |
| | | heading: global.DC.Namespace.Cesium.Math.toRadians( |
| | | state.dimensionData.heading |
| | | ), // 方向 |
| | | pitch: global.DC.Namespace.Cesium.Math.toRadians( |
| | | state.dimensionData.pitch |
| | | ), // 倾斜角度 |
| | | roll: state.dimensionData.roll, |
| | | mutations: { |
| | | ...urlParameter.mutations, // url参数 |
| | | // MSET_VIEWER (state, viewer) { |
| | | // global.viewer = viewer |
| | | // }, |
| | | SET_PINCHFLAG (state, pinchFlag) { |
| | | state.pinchFlag = pinchFlag |
| | | }, |
| | | }); |
| | | }, |
| | | MSET_GOTOCC({ state, commit, dispatch }, val) { |
| | | //测试移动位置 |
| | | // commit("MSET_DIMENSION", val); |
| | | //控制高度 |
| | | // const height = Math.ceil(state.mviewer.camera.positionCartographic.height); |
| | | state.mviewer.camera.setView({ |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians( |
| | | state.mviewer.camera.positionCartographic.longitude, |
| | | state.mviewer.camera.positionCartographic.latitude, |
| | | val.height |
| | | ), |
| | | orientation: { |
| | | heading: global.DC.Namespace.Cesium.Math.toRadians(val.heading), // 方向 |
| | | pitch: global.DC.Namespace.Cesium.Math.toRadians(val.pitch), // 倾斜角度 |
| | | roll: val.roll, |
| | | MSET_BIGPOPUP (state, viewer) { |
| | | state.mBigPopup = viewer |
| | | $store.dispatch('closeMobileWindowsDom') // 关闭弹窗 |
| | | }, |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | MSET_BIGPOPUPAFTER (state, viewer) { |
| | | state.mBigPopupAfter = viewer |
| | | $store.dispatch('closeMobileWindowsDom') // 关闭弹窗 |
| | | }, |
| | | MSET_POPUPOUROPENDATA (state, viewer) { |
| | | state.popupOurOpenData = viewer |
| | | }, |
| | | MSET_ICONHIDE (state, viewer) { |
| | | state.iconHide = viewer |
| | | }, |
| | | MSET_POPUPTABLENAME (state, viewer) { |
| | | state.popupTableName = viewer |
| | | }, |
| | | MSET_MOBILEWINDOWSHIDE (state, viewer) { |
| | | // 随地图移动窗口 |
| | | state.MobileWindowChangeData = !state.MobileWindowChangeData |
| | | state.MobileWindowsHide = viewer |
| | | }, |
| | | MSETCC_SETCC (state, viewer) { |
| | | state.ccDataState = !state.ccDataState // 专门测试 |
| | | state.query = viewer |
| | | }, |
| | | // MSET_POPUPDOM(state, viewer) { |
| | | // window.popupsDom = viewer |
| | | // }, |
| | | MSET_QUERY (state, viewer) { |
| | | state.query = viewer |
| | | }, |
| | | MSET_OPENMOBILEGOTO (state, viewer) { |
| | | state.openmobileGoTo = viewer |
| | | }, |
| | | MSET_OPENMOBILEPANORAMA (state, viewer) { |
| | | state.openmobilePanorama = viewer |
| | | }, |
| | | MSET_MOBILEWINDOWSHIDEFIXED (state, viewer) { |
| | | // 固定窗口 |
| | | state.MobileWindowChangeDataFixed = !state.MobileWindowChangeDataFixed |
| | | state.MobileWindowsHideFixed = viewer |
| | | }, |
| | | // // 开关飞入点图标 |
| | | // MSET_OPENPOINTEL(state, val) { |
| | | // if (val) { |
| | | // state.pointLayerData.img = state.pointLayerData.checked |
| | | // state[state.pointLayerData.layer].show = true |
| | | // } else { |
| | | // state.pointLayerData.img = state.pointLayerData.normal |
| | | // state[state.pointLayerData.layer].show = false |
| | | // } |
| | | // }, |
| | | // 送入移动端缩放范围 |
| | | set_zoomRange (state, data) { |
| | | state.zoomRange = data |
| | | }, |
| | | // 送入默认弹窗高度 |
| | | set_frislayertHeight (state, data) { |
| | | state.frislayertHeight = data |
| | | }, |
| | | SET_DIMENSION (state, dimension) { |
| | | state.dimension = dimension |
| | | }, |
| | | SET_DIMENSIONDATA (state, dimensionData) { |
| | | state.dimensionData = dimensionData |
| | | }, |
| | | // 切换2D和2.5D |
| | | MSET_DIMENSION (state, data) { |
| | | // 关闭弹窗 |
| | | // 3d,2.5d转换事件 |
| | | state.dimension = data |
| | | if (data == '3D') { |
| | | // 改数据为3d数据 |
| | | state.dimensionData = { |
| | | // 维度镜头数据 |
| | | heading: 0, |
| | | pitch: -45, |
| | | roll: 0 |
| | | } |
| | | // 加载底图 |
| | | if (!window.vecLayer) { |
| | | // window.vecLayer = global.viewer.imageryLayers.addImageryProvider( |
| | | // new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({ |
| | | // url: 'http://t{s}.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0', |
| | | // subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'], |
| | | // format: 'image/jpeg', |
| | | // show: true, |
| | | // maximumLevel: 18 |
| | | // }) |
| | | // ) |
| | | |
| | | export default mobile; |
| | | // window.cvaLayer = global.viewer.imageryLayers.addImageryProvider( |
| | | // new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({ |
| | | // url: 'http://t{s}.tianditu.gov.cn/DataServer?T=cva_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0', |
| | | // subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'], |
| | | // format: 'image/jpeg', |
| | | // show: true, |
| | | // maximumLevel: 18 |
| | | // }) |
| | | // ) |
| | | } |
| | | // console.log(1321) |
| | | window.wallLayer.show = false // 关闭瀑布 以及2.5d图形贴片 |
| | | global.viewer.imageryLayers.remove(window.newLayer) |
| | | window.newLayer = null |
| | | // state.silhouetteBlue.selected = [] |
| | | // window.tilesetLayer.changesilhouetteBlue(); //清空silhouetteBlue.selected = []; |
| | | // console.log(window.tileset) |
| | | window.tilesetLayer.show = true // 显示3d图形 |
| | | // global.viewer.flyTo(window.tileset); |
| | | window.areaLayer.show = false // 绿布 |
| | | // 3D视角不限制 |
| | | global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 80 |
| | | // 最大 |
| | | global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = 4000000 |
| | | // 设置相机缩小时的速率 |
| | | global.viewer.scene.screenSpaceCameraController._minimumZoomRate = 10000 |
| | | // 设置相机放大时的速率 |
| | | global.viewer.scene.screenSpaceCameraController._maximumZoomRate = 5906376272000 |
| | | // 视角平移 |
| | | global.viewer.scene.screenSpaceCameraController.enableRotate = true |
| | | // 视角缩放 |
| | | global.viewer.scene.screenSpaceCameraController.enableZoom = true |
| | | // 视角旋转 |
| | | global.viewer.scene.screenSpaceCameraController.enableTilt = true |
| | | } else if (data == '2.5D') { |
| | | state.dimensionData = { |
| | | // 维度镜头数据 |
| | | heading: 0, |
| | | pitch: -90, |
| | | roll: 0 |
| | | // heading: global.DC.Namespace.Cesium.Math.toRadians(-9), |
| | | // pitch: global.DC.Namespace.Cesium.Math.toRadians(-34.54), |
| | | // roll: 0, |
| | | } |
| | | // 取消3D底图 |
| | | // global.viewer.imageryLayers.remove(window.vecLayer); |
| | | // window.vecLayer = null; |
| | | // global.viewer.imageryLayers.remove(window.cvaLayer); |
| | | // window.cvaLayer = null; |
| | | // 加载底图 |
| | | // window.vecLayer = global.viewer.imageryLayers.addImageryProvider( |
| | | // new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({ |
| | | // url: 'http://t{s}.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0', |
| | | // subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'], |
| | | // format: 'image/jpeg', |
| | | // show: true, |
| | | // maximumLevel: 18 |
| | | // }) |
| | | // ) |
| | | |
| | | // window.cvaLayer = global.viewer.imageryLayers.addImageryProvider( |
| | | // new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({ |
| | | // url: 'http://t{s}.tianditu.gov.cn/DataServer?T=cva_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0', |
| | | // subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'], |
| | | // format: 'image/jpeg', |
| | | // show: true, |
| | | // maximumLevel: 18 |
| | | // }) |
| | | // ) |
| | | |
| | | window.tilesetLayer.show = false // 隐藏3d图形 |
| | | window.newLayer = window.usetowpointfive() // 添加2.5d图形贴片 |
| | | window.wallLayer.show = false // 打开瀑布 |
| | | window.areaLayer.show = true // 绿布 |
| | | if (state.zoomRange[3]) { |
| | | global.viewer.imageryLayers.addImageryProvider(new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({ |
| | | url: '/fz/{z}/{x}/{y}.png', |
| | | fileExtension: 'png' |
| | | // minimumLevel: 19 |
| | | })) |
| | | // global.viewer.imageryLayers.addImageryProvider( |
| | | // new global.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({ |
| | | // url: "http://arcgis.jxpskj.com:6080/arcgis/rest/services/FZ25DMap/MapServer/WMTS", |
| | | // layer: "fzsw2019", |
| | | // style: "default", |
| | | // tileMatrixSetID: "default028mm", |
| | | // format: "image/jpgpng", |
| | | // tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(), |
| | | // maximumLevel: 19, |
| | | // tileMatrixLabels: [ |
| | | // "0", |
| | | // "1", |
| | | // "2", |
| | | // "3", |
| | | // "4", |
| | | // "5", |
| | | // "6", |
| | | // "7", |
| | | // "8", |
| | | // "9", |
| | | // "10", |
| | | // "11", |
| | | // "12", |
| | | // "13", |
| | | // "14", |
| | | // "15", |
| | | // "16", |
| | | // "17", |
| | | // "18", |
| | | // "19", |
| | | // ], |
| | | // }) |
| | | // ); |
| | | // 2.5D视角限制 |
| | | // global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = 50 |
| | | // // 最大 |
| | | // global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = 9999999999 |
| | | } else { |
| | | } |
| | | // 2.5D视角限制 |
| | | global.viewer.scene.screenSpaceCameraController.minimumZoomDistance = state.zoomRange[0] |
| | | // 最大 |
| | | global.viewer.scene.screenSpaceCameraController.maximumZoomDistance = state.zoomRange[1] |
| | | // 设置相机缩小时的速率 |
| | | global.viewer.scene.screenSpaceCameraController._minimumZoomRate = 2000 |
| | | // 设置相机放大时的速率 |
| | | global.viewer.scene.screenSpaceCameraController._maximumZoomRate = 5906376272000 |
| | | // 视角平移 |
| | | global.viewer.scene.screenSpaceCameraController.enableRotate = true |
| | | // 视角缩放 |
| | | global.viewer.scene.screenSpaceCameraController.enableZoom = true |
| | | // 视角旋转 |
| | | global.viewer.scene.screenSpaceCameraController.enableTilt = false |
| | | } |
| | | }, |
| | | // 绿布 |
| | | MSET_areaLayer (state, data) { |
| | | window.areaLayer = data |
| | | }, |
| | | // 切换控制 |
| | | MSET_PERSPECTIVECONTROL (state, data) { |
| | | state.perspectiveControl = data |
| | | state.perspectiveControls = !state.perspectiveControls |
| | | }, |
| | | // MSET_MODEOLS(state, data) { |
| | | // window.tilesetLayer = data.tilesetLayer |
| | | // window.newLayer = data.newLayer |
| | | // window.wallLayer = data.wallLayer |
| | | // window.tileset = data.tileset |
| | | // window.usetowpointfive = data.usetowpointfive |
| | | // }, |
| | | // 直接移动 |
| | | cameraSetView (state, data) { |
| | | global.viewer.camera.setView({ |
| | | // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州 |
| | | // fromDegrees()方法,将经纬度和高程转换为世界坐标 |
| | | // eslint-disable-next-line new-cap |
| | | destination: new global.DC.Namespace.Cesium.Cartesian3.fromDegrees( |
| | | // 114.0351, |
| | | // 27.6314, |
| | | // 200.0 |
| | | data[0] + 0.0, |
| | | data[1] + 0.00028, |
| | | data[2] || 300 |
| | | ), |
| | | orientation: { |
| | | heading: global.DC.Namespace.Cesium.Math.toRadians( |
| | | state.dimensionData.heading |
| | | ), |
| | | pitch: global.DC.Namespace.Cesium.Math.toRadians( |
| | | state.dimensionData.pitch |
| | | ), |
| | | // heading: data.heading, |
| | | // pitch: data.pitch, |
| | | roll: state.dimensionData.roll |
| | | } |
| | | }) |
| | | }, |
| | | // 删除路线 |
| | | removePolyline (state) { |
| | | if (window.drawALineLayer) { |
| | | window.drawALineLayer.remove() |
| | | window.drawALineLayer = null |
| | | state.isOpenDrawALine = false |
| | | } |
| | | }, |
| | | removerPolyLineIcon (state) { |
| | | if (window.drawALineLayerIcon) { |
| | | window.drawALineLayerIcon.remove() |
| | | window.drawALineLayerIcon = null |
| | | } |
| | | }, |
| | | removePolylineMany (state) { |
| | | if (window.drawALineLayerMany) { |
| | | window.drawALineLayerMany.remove() |
| | | window.drawALineLayerMany = null |
| | | state.isOpenDrawALineMany = false |
| | | } |
| | | if (window.drawAPointLayerMany) { |
| | | window.drawAPointLayerMany.remove() |
| | | window.drawAPointLayerMany = null |
| | | state.isOpenDrawALineMany = false |
| | | } |
| | | }, |
| | | // 显影线路或者点 |
| | | showLineOrPoint (state, val) { |
| | | window[val.layer].show = val.flag |
| | | }, |
| | | // 传送终点数据 |
| | | set_endPosition (state, data) { |
| | | state.isendPosition = !state.isendPosition |
| | | state.endPosition = data |
| | | }, |
| | | // 传送当前选择的路径 |
| | | set_choiceRouterS (state, data) { |
| | | state.choiceRouterS = data |
| | | }, |
| | | // 活动窗口是否显示 |
| | | set_showActivity (state, data) { |
| | | state.showActivity = data |
| | | if (data.state) { |
| | | state.showActivityData = data.value |
| | | state.showActivity = data.state |
| | | } else { |
| | | state.showActivityData = {} |
| | | state.showActivity = data.state |
| | | } |
| | | }, |
| | | mset_changeSelect (state, data) { |
| | | window.select.overlay = data[0] |
| | | window.select.color = data[1] |
| | | }, |
| | | SET_SeeAndNotSee (state, data) { |
| | | state.seeRight = data |
| | | } |
| | | }, |
| | | actions: { |
| | | ...urlParameter.actions, // url参数 |
| | | MSET_CREADE ({ |
| | | state, |
| | | commit, |
| | | dispatch |
| | | }) { |
| | | window.pointLayer = new global.DC.VectorLayer('pointLayer') // 创建图标实体类 |
| | | global.viewer.addLayer(window.pointLayer) // 添加到地图 |
| | | }, |
| | | setMobileWindows ({ |
| | | state, |
| | | commit, |
| | | dispatch |
| | | }, data) { |
| | | // 打开随地图移动窗口 |
| | | let clas, Flys |
| | | // const nowHeight = Math.ceil( |
| | | // global.viewer.camera.positionCartographic.height |
| | | // ) |
| | | // 传递响应数据 |
| | | commit('MSET_QUERY', data) |
| | | // console.log(data); |
| | | // 配置移动和弹窗的偏移 flys是飞行的偏移 clas是弹窗的偏移 |
| | | if (state.dimension == '3D') { |
| | | Flys = [ |
| | | +data.lntLat[0] + 0.01197, |
| | | // +data.lntLat[1] - 0.0001, |
| | | +data.lntLat[1] - 0.0027, |
| | | 330 |
| | | ] |
| | | clas = [ |
| | | data.from == 'PopupOurOnce' ? +data.lntLat[0] : +data.lntLat[0], |
| | | // data.from == 'PopupOurOnce' ? +data.lntLat[1] - 0.00108 : +data.lntLat[1], |
| | | data.from == 'PopupOurOnce' |
| | | ? +data.lntLat[1] - 0.00108 |
| | | : +data.lntLat[1] - 0.00048, |
| | | data.from == 'PopupOurOnce' ? 0 : 30.648862227 |
| | | ] |
| | | } else if (state.dimension == '2.5D') { |
| | | Flys = [ |
| | | +data.lntLat[0] + 0.01197, |
| | | +data.lntLat[1] + 0.00048, |
| | | // +data.lntLat[1] - 0.0022, |
| | | // nowHeight, |
| | | state.frislayertHeight |
| | | ] |
| | | // console.log(nowHeight); |
| | | clas = [ |
| | | data.from == 'PopupOurOnce' ? +data.lntLat[0] : +data.lntLat[0], |
| | | data.from == 'PopupOurOnce' ? +data.lntLat[1] : +data.lntLat[1], |
| | | // data.from == 'PopupOurOnce' ? +data.lntLat[1] - 0.00108 : +data.lntLat[1] - 0.00048, |
| | | // data.from == 'PopupOurOnce' ? 0 : 90.648862227 |
| | | data.from == 'PopupOurOnce' ? 0 : 0 |
| | | ] |
| | | } |
| | | window.tancuanPosition = data.position |
| | | // useJWD开启状态 window.tancuanPosition就是根据经纬度来计算出来的 如果有原有的 data.position 把值变为false |
| | | if (data.useJWD) { |
| | | window.ellipsoid = global.viewer.scene.globe.ellipsoid |
| | | window.cartographic = global.DC.Namespace.Cesium.Cartographic.fromDegrees( |
| | | // data.lntLat[0], |
| | | // data.lntLat[1] - 0.00048,//数值增大是下 |
| | | // "90.648862227" |
| | | // clnt, clat, calt |
| | | ...clas |
| | | ) |
| | | window.tancuanPosition = window.ellipsoid.cartographicToCartesian(window.cartographic) |
| | | } |
| | | |
| | | // 定制化窗体 |
| | | // eslint-disable-next-line new-cap |
| | | window.popupsDom = new global.DC.mobileDivForms(global.viewer, { |
| | | domId: 'mobilePopup', |
| | | title: data.query.name || '成教楼 ', |
| | | className: 'mobilePopup', |
| | | content: document.getElementById('mobile-map_content_content'), |
| | | position: [window.tancuanPosition] |
| | | }) |
| | | // commit("MSET_MOBILEWINDOWSHIDE", false)//显示弹窗 |
| | | // dispatch("CHANGETOC3", { // 转换坐标 |
| | | // lnt: data.lntLat[0], |
| | | // lat: data.lntLat[1] |
| | | // }).then(res => { |
| | | // console.log(res) |
| | | |
| | | // 基于高度基础设置 |
| | | // h:1530 |
| | | // lnt: + 0.01187 x轴 大是向左 |
| | | // Lat: - 0.0108 y轴 减是上 |
| | | // h:4000 |
| | | // lnt: + 0.01187 x轴 |
| | | // Lat: - 0.0308 y轴 |
| | | // h:330 |
| | | // lnt: + 0.01197 x轴 |
| | | // Lat: - 0.0021 y轴 |
| | | // console.log(data.query.from, 78) |
| | | // let Flys = [ |
| | | // data.query.from == "地图点击" ? +data.lntLat[0] + 0.01197 : +data.lntLat[0] + 0.01197, |
| | | // data.query.from == "地图点击" ? +data.lntLat[1] - 0.0021 : +data.lntLat[1] - 0.0021, |
| | | // data.query.from == "地图点击" ? 330 : 330, |
| | | // ] |
| | | |
| | | window.flytoPosition = new global.DC.Position( // 转坐标 |
| | | // +data.lntLat[0] + 0.01197, |
| | | // +data.lntLat[1] - 0.0021, |
| | | // 330, |
| | | ...Flys, |
| | | 0, |
| | | state.dimensionData.pitch |
| | | ) |
| | | if (!state.MobileWindowsHide) { |
| | | // 关闭弹窗 |
| | | commit('MSET_MOBILEWINDOWSHIDE', true) |
| | | } |
| | | if ( |
| | | window.select.overlay != undefined && |
| | | data.query.fromTo != 'mapClick' |
| | | ) { |
| | | // 关闭绿色边框 |
| | | window.select.overlay.setStyle({ |
| | | material: window.select.color, |
| | | outline: false |
| | | }) |
| | | commit('mset_changeSelect', [undefined, undefined]) |
| | | } |
| | | // console.log(state.dimension); |
| | | if (state.dimension != '2.5D') { |
| | | // if (true) { |
| | | // if (true) { |
| | | dispatch('mapFlyTo', { |
| | | // 飞入 |
| | | lntLat: [window.flytoPosition.lng, window.flytoPosition.lat, window.flytoPosition.alt], |
| | | heading: window.flytoPosition.heading, |
| | | pitch: window.flytoPosition.pitch, |
| | | roll: window.flytoPosition.roll |
| | | }) |
| | | } else { |
| | | dispatch('mapFlyTo', { |
| | | // 飞入 |
| | | lntLat: [window.flytoPosition.lng, +window.flytoPosition.lat - 0.0003, window.flytoPosition.alt], |
| | | heading: window.flytoPosition.heading, |
| | | pitch: window.flytoPosition.pitch, |
| | | roll: window.flytoPosition.roll |
| | | }) |
| | | // global.viewer.camera.setView({ |
| | | // // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州 |
| | | // // fromDegrees()方法,将经纬度和高程转换为世界坐标 |
| | | // destination: new global.DC.Namespace.Cesium.Cartesian3.fromDegrees( |
| | | // // 114.0351, |
| | | // // 27.6314, |
| | | // // 200.0 |
| | | // Position.lng - 0.012, |
| | | // Position.lat - 0.0003, |
| | | // Position.alt || 15000.0 |
| | | // ), |
| | | // orientation: { |
| | | // heading: global.DC.Namespace.Cesium.Math.toRadians( |
| | | // Position.heading |
| | | // ), |
| | | // pitch: global.DC.Namespace.Cesium.Math.toRadians(Position.pitch), |
| | | // // heading: data.heading, |
| | | // // pitch: data.pitch, |
| | | // roll: Position.roll, |
| | | // }, |
| | | // }); |
| | | // commit("MSET_MOBILEWINDOWSHIDE", false); // 显示弹窗 |
| | | } |
| | | // }) |
| | | // commit('MSET_POPUPDOM', popupsDom) |
| | | }, |
| | | closeMobileWindowsDom ({ |
| | | state, |
| | | commit, |
| | | dispatch |
| | | }) { |
| | | commit('CLOSE_NOWPOSITION') // 中断定位获取 |
| | | if (!state.MobileWindowsHide && window.popupsDom) { |
| | | window.popupsDom.closeOur() |
| | | commit('MSET_MOBILEWINDOWSHIDE', true) |
| | | if (state.audioData) { |
| | | dispatch('MSET_GETAUDIOBEGIN', 'notOpen') |
| | | } |
| | | } // cancel |
| | | }, |
| | | // CHANGETOC3({ |
| | | // state, |
| | | // commit |
| | | // }, data) { |
| | | // // //转换经纬度坐标 成世界坐标cartesian3 |
| | | // var ellipsoid = global.viewer.scene.globe.ellipsoid |
| | | // var cartographic = global.DC.Namespace.Cesium.Cartographic.fromDegrees( |
| | | // data.lnt, |
| | | // data.lat - 0.00006, |
| | | // data.alt || '90.648862227' |
| | | // ) |
| | | // var position = ellipsoid.cartographicToCartesian(cartographic) |
| | | // return position |
| | | // }, |
| | | SET_OPENWIDOWFIXED ({ |
| | | state, |
| | | commit |
| | | }, data) { |
| | | // 传递响应数据 |
| | | commit('MSET_QUERY', data) |
| | | // 显示窗口 |
| | | commit('MSET_MOBILEWINDOWSHIDEFIXED', false) |
| | | // 移动地图位置 |
| | | global.viewer.zoomToPosition( |
| | | new global.DC.Position( |
| | | data.lntLat[0], |
| | | data.lntLat[1] - 0.012, |
| | | 1530, |
| | | 0, |
| | | -45 |
| | | ) |
| | | ) |
| | | }, |
| | | CLOSE_WIDOWFIXED ({ |
| | | state, |
| | | commit |
| | | }) { |
| | | // 隐藏窗口 |
| | | if (!state.MobileWindowsHideFixed) { |
| | | commit('MSET_MOBILEWINDOWSHIDEFIXED', true) |
| | | } |
| | | }, |
| | | // 加入当时的选点 |
| | | JOIN_POINT ({ |
| | | state, |
| | | commit |
| | | }, data) { }, |
| | | // flyTo |
| | | mapFlyTo ({ |
| | | state, |
| | | commit, |
| | | dispatch |
| | | }, data) { |
| | | global.viewer.camera.flyTo({ |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees( |
| | | data.lntLat[0] - 0.012, |
| | | data.lntLat[1], |
| | | data.lntLat[2] || 15000.0 |
| | | ), |
| | | // destination: data.res, |
| | | orientation: { |
| | | heading: global.DC.Namespace.Cesium.Math.toRadians(data.heading), |
| | | pitch: global.DC.Namespace.Cesium.Math.toRadians(data.pitch), |
| | | // heading: data.heading, |
| | | // pitch: data.pitch, |
| | | roll: data.roll |
| | | }, |
| | | duration: 1, // 定位的时间间隔 |
| | | complete: () => { |
| | | // 完成后的回调 |
| | | if (data.fn) { |
| | | // 自定义回调 |
| | | setTimeout(() => { |
| | | data.fn() |
| | | }, 200) |
| | | } |
| | | if (!data.noOpen) { |
| | | setTimeout(() => { |
| | | // dispatch("MSET_POINTDATA", data.lntLat);//传入标记点 |
| | | !state.MobileWindowsHide || |
| | | commit('MSET_MOBILEWINDOWSHIDE', false) // 显示弹窗 |
| | | }, 100) |
| | | } |
| | | } |
| | | }) |
| | | // 官网flyto使用方法 |
| | | // 1. Fly to a position with a top-down view |
| | | // viewer.camera.flyTo({ |
| | | // destination : Cesium.Cartesian3.fromDegrees(-117.16, 32.71, 15000.0) |
| | | // }); |
| | | |
| | | // // 2. Fly to a Rectangle with a top-down view |
| | | // viewer.camera.flyTo({ |
| | | // destination : Cesium.Rectangle.fromDegrees(west, south, east, north) |
| | | // }); |
| | | |
| | | // // 3. Fly to a position with an orientation using unit vectors. |
| | | // viewer.camera.flyTo({ |
| | | // destination : Cesium.Cartesian3.fromDegrees(-122.19, 46.25, 5000.0), |
| | | // orientation : { |
| | | // direction : new Cesium.Cartesian3(-0.04231243104240401, -0.20123236049443421, -0.97862924300734), |
| | | // up : new Cesium.Cartesian3(-0.47934589305293746, -0.8553216253114552, 0.1966022179118339) |
| | | // } |
| | | // }); |
| | | |
| | | // // 4. Fly to a position with an orientation using heading, pitch and roll. |
| | | // viewer.camera.flyTo({ |
| | | // destination : Cesium.Cartesian3.fromDegrees(-122.19, 46.25, 5000.0), |
| | | // orientation : { |
| | | // heading : Cesium.Math.toRadians(175.0), |
| | | // pitch : Cesium.Math.toRadians(-35.0), |
| | | // roll : 0.0 |
| | | // } |
| | | // }); |
| | | }, |
| | | // 飞入点加入位置 |
| | | // MSET_POINTDATA({ |
| | | // state, |
| | | // commit, |
| | | // dispatch |
| | | // }, data) { |
| | | // // 加入坐标 |
| | | // const positions = new global.DC.Position( |
| | | // data[0] - 0.0119, |
| | | // data[1] + 0.0111, |
| | | // 0 |
| | | // ) |
| | | // const billboard = new global.DC.Billboard( |
| | | // positions, |
| | | // '/img/leftnav/map-panorama.png' |
| | | // ) |
| | | // billboard.size = [16, 16] |
| | | // // 订阅事件3 |
| | | // billboard.on(global.DC.MouseEventType.CLICK, (e) => { |
| | | // // 定制化窗体 |
| | | // const query = { |
| | | // name: '选择点' |
| | | // } |
| | | // const intLat = [e.wgs84Position.lng, e.wgs84Position.lat] |
| | | // const d = { |
| | | // position: null, |
| | | // lntLat: intLat, |
| | | // query: { |
| | | // ...(query || {}), |
| | | // introduce: null, |
| | | // address: intLat |
| | | // }, |
| | | // useJWD: true // 仅使用经纬度 |
| | | // } |
| | | // dispatch('setMobileWindows', d) |
| | | // }) |
| | | // window.pointLayer.addOverlay(billboard) // 实景 |
| | | // // commit("MSET_OPENPOINTEL", true); |
| | | // }, |
| | | MSET_LOCKPERSPECTIVEL ({ |
| | | state, |
| | | commit, |
| | | dispatch |
| | | }, val) { |
| | | // 锁定 |
| | | global.viewer.camera.lookAtTransform( |
| | | global.DC.Namespace.Cesium.Matrix4.IDENTITY |
| | | ) |
| | | // console.log(global.DC.Namespace.Cesium.Matrix4.IDENTITY) |
| | | }, |
| | | MSET_DIMENSIONS ({ |
| | | state, |
| | | commit, |
| | | dispatch |
| | | }, val) { |
| | | // 关闭弹窗 |
| | | dispatch('closeMobileWindowsDom') |
| | | // 3d,2.5d转换事件 |
| | | commit('MSET_DIMENSION', val) |
| | | // 控制高度 |
| | | window.useHeight = Math.ceil( |
| | | global.viewer.camera.positionCartographic.height |
| | | ) |
| | | global.viewer.camera.setView({ |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians( |
| | | global.viewer.camera.positionCartographic.longitude, |
| | | global.viewer.camera.positionCartographic.latitude, |
| | | window.useHeight |
| | | ), |
| | | orientation: { |
| | | heading: global.DC.Namespace.Cesium.Math.toRadians( |
| | | state.dimensionData.heading |
| | | ), // 方向 |
| | | pitch: global.DC.Namespace.Cesium.Math.toRadians( |
| | | state.dimensionData.pitch |
| | | ), // 倾斜角度 |
| | | roll: state.dimensionData.roll |
| | | } |
| | | }) |
| | | }, |
| | | MSET_GOTOCC ({ |
| | | state, |
| | | commit, |
| | | dispatch |
| | | }, val) { |
| | | // 测试移动位置 |
| | | // commit("MSET_DIMENSION", val); |
| | | // 控制高度 |
| | | // const height = Math.ceil(global.viewer.camera.positionCartographic.height); |
| | | global.viewer.camera.setView({ |
| | | destination: global.DC.Namespace.Cesium.Cartesian3.fromRadians( |
| | | global.viewer.camera.positionCartographic.longitude, |
| | | global.viewer.camera.positionCartographic.latitude, |
| | | val.height |
| | | ), |
| | | orientation: { |
| | | heading: global.DC.Namespace.Cesium.Math.toRadians(val.heading), // 方向 |
| | | pitch: global.DC.Namespace.Cesium.Math.toRadians(val.pitch), // 倾斜角度 |
| | | roll: val.roll |
| | | } |
| | | }) |
| | | }, |
| | | // 文字转语音控制↓ |
| | | MSET_GETAUDIO ({ |
| | | state, |
| | | commit, |
| | | dispatch |
| | | }, val) { |
| | | state.audioData = new window.SpeechSynthesisUtterance() |
| | | state.audioData.text = val |
| | | state.audioData.onstart = function (e) { |
| | | state.audioState = true |
| | | } |
| | | state.audioData.onend = function (event) { |
| | | state.audioState = false |
| | | } |
| | | }, |
| | | MSET_GETAUDIOBEGIN ({ |
| | | state, |
| | | commit, |
| | | dispatch |
| | | }, val) { |
| | | if (state.audioState) { |
| | | window.speechSynthesis.cancel() |
| | | state.audioState = false |
| | | } else { |
| | | if (val != 'notOpen') { |
| | | window.speechSynthesis.speak(state.audioData) |
| | | } |
| | | } |
| | | }, |
| | | // 文字转语音控制↑ |
| | | // 导航系统↓ |
| | | MSET_GOTOWHERE ({ |
| | | state, |
| | | commit, |
| | | dispatch |
| | | }, val) { |
| | | state.routerS = [] // 清空存着的路径 |
| | | // 单条步行 |
| | | // 本地图使用的是WGS84坐标,而高德使用的是火星坐标GCJ02,所以需要转换参数过去 |
| | | // 返回值需要转换为WGS84坐标 |
| | | state.navigationStartLngLat = [+val.start[0], +val.start[1]] // 导航起点 |
| | | state.navigationEndLngLat = [+val.end[0], +val.end[1]] // 导航终点 |
| | | // 转换WGS84坐标为GCJ02 |
| | | window.drawALineLayerGCJ02StartLngLat = global.DC.CoordTransform.WGS84ToGCJ02( |
| | | Number(state.navigationStartLngLat[0]), |
| | | Number(state.navigationStartLngLat[1]) |
| | | ) |
| | | window.drawALineLayerGCJ02EndLngLat = global.DC.CoordTransform.WGS84ToGCJ02( |
| | | Number(state.navigationEndLngLat[0]), |
| | | Number(state.navigationEndLngLat[1]) |
| | | ) |
| | | // 获取路径,使用的是高德API |
| | | |
| | | let url = 'https://restapi.amap.com/v3/direction/walking' // 默认api步行 |
| | | const data = { |
| | | origin: `${Number(window.drawALineLayerGCJ02StartLngLat[0]).toFixed(6)},${Number( |
| | | window.drawALineLayerGCJ02StartLngLat[1] |
| | | ).toFixed(6)}`, |
| | | destination: `${Number(window.drawALineLayerGCJ02EndLngLat[0]).toFixed(6)},${Number( |
| | | window.drawALineLayerGCJ02EndLngLat[1] |
| | | ).toFixed(6)}`, |
| | | key: '4b3e1db3211054ce5b466407cbb9d221', |
| | | output: 'json' |
| | | } |
| | | let strategyType = [0] |
| | | if (val.type) { |
| | | // 切换驾车模式 |
| | | url = 'https://restapi.amap.com/v3/direction/driving' |
| | | data.strategy = 10 |
| | | strategyType = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] |
| | | } |
| | | // for (let index = 0; index < strategyType.length; index++) { |
| | | // data["strategy"] = strategyType[index]; |
| | | axios |
| | | .get(url, { |
| | | params: { |
| | | ...data |
| | | } |
| | | }) |
| | | .then((res) => { |
| | | // 回调 |
| | | const paths = res.data.route.paths |
| | | for (let i = 0; i < paths.length; i++) { |
| | | // 多条路线 |
| | | window.drawALineLayerdrawALine(paths[i]) |
| | | } |
| | | // const paths = res.data.route.paths[0].steps; |
| | | // window.drawALineLayerdrawALine (paths, res.data.route.paths[0].strategy); |
| | | }) |
| | | // } |
| | | // 包装绘画工具 |
| | | window.drawALineLayerdrawALine = (pathsour) => { |
| | | const paths = pathsour.steps |
| | | const titles = pathsour.strategy |
| | | // paths是个道路对象,其中polyline是String类型的经纬度 |
| | | let Str = state.navigationStartLngLat.join(',') + ';' // 加入起点 |
| | | for (let index = 0; index < paths.length; index++) { |
| | | const path = paths[index] |
| | | let polyline = path.polyline // 取到String类型的经纬度 |
| | | const polylineArr = polyline.split(';') // 转为数组 |
| | | const polylineArrLength = polylineArr.length // 获取长度,避免多次重复读取polylineArr.length |
| | | for (let k = 0; k < polylineArrLength; k++) { |
| | | const inPolylineArr = polylineArr[k].split(',') // 转经纬度为单独的数组 |
| | | const outIn = global.DC.CoordTransform.GCJ02ToWGS84( |
| | | // 处理火星坐标转换成WGS84 GCJ02ToWGS84 |
| | | inPolylineArr[0], |
| | | inPolylineArr[1] |
| | | ) |
| | | polylineArr[k] = outIn.join(',') // 每组经纬度转为String |
| | | } |
| | | polyline = polylineArr.join(';') // 合并转换后的经纬度合集 |
| | | |
| | | Str += polyline // 自加 |
| | | Str += ';' |
| | | } |
| | | Str += state.navigationEndLngLat.join(',') // 加入终点 |
| | | if (val.fn) { |
| | | const dataS = { |
| | | // 返回数据 |
| | | titles: titles, |
| | | Str: Str |
| | | } |
| | | // console.log(Str); |
| | | state.routerS.push(dataS) |
| | | return val.fn(dataS) |
| | | } else { |
| | | dispatch('MSET_DRAWALINELAYER', Str) // 绘画线路 |
| | | } |
| | | } |
| | | }, |
| | | // 导航系统↑ |
| | | // 绘画线路 |
| | | MSET_DRAWALINELAYER ({ |
| | | state, |
| | | commit, |
| | | dispatch |
| | | }, value) { |
| | | const Str = value[0] |
| | | // 检查是否存在路线 |
| | | commit('removePolyline') |
| | | commit('removePolylineMany') |
| | | |
| | | window.drawALineLayer = new global.DC.VectorLayer('lineLayer') |
| | | global.viewer.addLayer(window.drawALineLayer) |
| | | |
| | | // 如果是添加 给第一个点加入图标 和事件 |
| | | if (value[1]) { |
| | | commit('removerPolyLineIcon') |
| | | window.drawALineLayerIcon = new global.DC.VectorLayer('pointLayer') |
| | | global.viewer.addLayer(window.drawALineLayerIcon) |
| | | const useStr = Str.split(';') |
| | | const post = useStr[useStr.length - 1].split(',') |
| | | window.positiondaohang = new global.DC.Position(post[0], post[1]) |
| | | window.billboarddaohang = new global.DC.Billboard( |
| | | window.positiondaohang, |
| | | 'img/dingwei/dingwei1.png' |
| | | ) // 加入绘画点 |
| | | window.billboarddaohang.setStyle({ |
| | | pixelOffset: { |
| | | x: 0, |
| | | y: -17 |
| | | } // 偏移像素 |
| | | }) |
| | | // 订阅事件 |
| | | window.billboarddaohang.on(global.DC.MouseEventType.CLICK, (e) => { |
| | | if (state.pinchFlag == true) { |
| | | return |
| | | } |
| | | // console.log(e); |
| | | // return; |
| | | // 定制化窗体 |
| | | const position = e.position |
| | | const lntLat = [e.overlay._position._lng, e.overlay._position._lat] |
| | | const windowData = { |
| | | position, |
| | | lntLat, |
| | | query: { |
| | | ...(value[1] || {}), |
| | | position, |
| | | lntLat, |
| | | notAddGoOn: 'notAddGoOn' |
| | | }, |
| | | useJWD: true // 仅使用经纬度 |
| | | } |
| | | dispatch('setMobileWindows', windowData) |
| | | }) |
| | | window.drawALineLayerIcon.addOverlay(window.billboarddaohang) |
| | | } |
| | | window.polylinedaohang = new global.DC.Polyline(Str) // 加入线 |
| | | window.polylinedaohang.setStyle({ |
| | | width: 3, |
| | | material: window.polylinematerialdaohang, |
| | | clampToGround: true |
| | | }) |
| | | window.drawALineLayer.addOverlay(window.polylinedaohang) |
| | | |
| | | state.isOpenDrawALine = true |
| | | // commit("cameraSetView", state.navigationStartLngLat); //移动 |
| | | }, |
| | | // 绘画线路活动多条 |
| | | MSET_DRAWALINELAYERMANY ({ |
| | | state, |
| | | commit, |
| | | dispatch |
| | | }, value) { |
| | | // 检查是否存在路线 |
| | | commit('removePolylineMany') |
| | | commit('removePolyline') |
| | | commit('removerPolyLineIcon') |
| | | const Strs = value[0] |
| | | window.drawALineLayerManycolor = global.DC.Namespace.Cesium.Color.fromCssColorString('#FF0000') |
| | | // const white = global.DC.Namespace.Cesium.Color.fromCssColorString('#fff') |
| | | // const blue = global.DC.Namespace.Cesium.Color.fromCssColorString('#2196F3') |
| | | // const material = new global.DC.PolylineTrailMaterialProperty({ |
| | | // color: red, |
| | | // speed: 10 |
| | | // }) |
| | | window.drawALineLayerManyStyle = new global.DC.PolylineImageTrailMaterialProperty({ |
| | | // color: window.drawALineLayerManycolor, |
| | | // speed: 60, |
| | | // image: 'img/icon/right.png', |
| | | // repeat: { |
| | | // x: 320, |
| | | // y: 1 |
| | | // } |
| | | color: global.DC.Namespace.Cesium.Color.fromBytes(10, 255, 10), |
| | | speed: 60, |
| | | image: '/img/icon/right.png', |
| | | repeat: { |
| | | x: 320, |
| | | y: 1 |
| | | } |
| | | }) |
| | | window.drawALineLayerMany = new global.DC.VectorLayer('manyLinePointLayer') |
| | | global.viewer.addLayer(window.drawALineLayerMany) |
| | | window.drawAPointLayerMany = new global.DC.VectorLayer('manyPointPointLayer') |
| | | global.viewer.addLayer(window.drawAPointLayerMany) |
| | | // 多条线 |
| | | for (const k in Strs) { |
| | | window.drawALineLayerManypolyline = new global.DC.Polyline(Strs[k].value) // 加入线 |
| | | window.drawALineLayerManypolyline.setStyle({ |
| | | width: 6, |
| | | material: window.drawALineLayerManyStyle, |
| | | clampToGround: true |
| | | }) |
| | | window.drawALineLayerMany.addOverlay(window.drawALineLayerManypolyline) |
| | | // let post = Strs[k].value.split(";")[0].split(","); |
| | | // let position = new global.DC.Position(post[0], post[1]); |
| | | // let Label = new global.DC.Label(position, Strs[k].name); |
| | | // Label.setStyle({ |
| | | // font: "16px sans-serif", // CSS 字体设置 |
| | | // scale: 1, //比例 |
| | | // fillColor: white, //文字颜色 |
| | | // showBackground: true, //是否显示背景 |
| | | // backgroundColor: blue, //背景颜色 |
| | | // // outlineColor: white, //边框颜色 |
| | | // // outlineWidth: 10, //边框大小, |
| | | // }); |
| | | // drawALineLayerMany.addOverlay(Label); |
| | | } |
| | | // 多个点 |
| | | const point = value[1] |
| | | for (const k in point) { |
| | | const post = point[k].value |
| | | window.drawAPointLayerManyposition = new global.DC.Position(post[0], post[1]) |
| | | |
| | | // let billboard = new global.DC.Billboard( |
| | | // position, |
| | | // // "img/dingwei/dingwei1.png" |
| | | // "img/icon/activity.png" |
| | | // ); //加入绘画点 |
| | | // billboard.setStyle({ |
| | | // pixelOffset: { x: 0, y: -17 }, //偏移像素 |
| | | // }); |
| | | // //订阅事件 |
| | | // billboard.on(global.DC.MouseEventType.CLICK, (e) => { |
| | | // // console.log(e); |
| | | // // return; |
| | | // // 定制化窗体 |
| | | // let position = e.position, |
| | | // lntLat = [e.overlay._position._lng, e.overlay._position._lat]; |
| | | // let windowData = { |
| | | // position, |
| | | // lntLat, |
| | | // query: { |
| | | // ...(value[2] || {}), |
| | | // position, |
| | | // lntLat, |
| | | // notAddGoOn: "notAddGoOn", |
| | | // }, |
| | | // useJWD: true, //仅使用经纬度 |
| | | // }; |
| | | // dispatch("setMobileWindows", windowData); |
| | | // }); |
| | | // window.drawALineLayerMany.addOverlay(billboard); |
| | | // let Labels = new global.DC.Label(position, point[k].name); |
| | | // Labels.setStyle({ |
| | | // font: "16px sans-serif", // CSS 字体设置 |
| | | // scale: 1, //比例 |
| | | // fillColor: white, //文字颜色 |
| | | // showBackground: true, //是否显示背景 |
| | | // backgroundColor: blue, //背景颜色 |
| | | // // outlineColor: white, //边框颜色 |
| | | // // outlineWidth: 1, //边框大小, |
| | | // pixelOffset: { x: 0, y: -47 }, //偏移像素 |
| | | // }); |
| | | const billboard = new global.DC.Billboard( |
| | | window.drawAPointLayerManyposition, '/img/icon/activity.png') |
| | | |
| | | const label = new global.DC.Label( |
| | | window.drawAPointLayerManyposition, |
| | | point[k].name |
| | | ) |
| | | |
| | | label.setStyle({ |
| | | fillColor: global.DC.Color.RED, |
| | | style: global.DC.Namespace.Cesium.LabelStyle.FILL_AND_OUTLINE, |
| | | outlineColor: global.DC.Color.WHITE, // 边框颜色 |
| | | outlineWidth: 8, // 边框大小, |
| | | font: '12px sans-serif', |
| | | pixelOffset: { x: 0, y: -24 } |
| | | }) |
| | | |
| | | billboard.on(global.DC.MouseEventType.CLICK, (e) => { |
| | | if (state.pinchFlag == true) { |
| | | return |
| | | } |
| | | |
| | | if (value[3]) { |
| | | value[3]() |
| | | } |
| | | // 定制化窗体 |
| | | const position = e.position |
| | | const lntLat = [e.overlay._position._lng, e.overlay._position._lat] |
| | | const windowData = { |
| | | position, |
| | | lntLat, |
| | | query: { |
| | | ...(value[2] || {}), |
| | | position, |
| | | lntLat |
| | | }, |
| | | useJWD: true // 仅使用经纬度 |
| | | } |
| | | dispatch('setMobileWindows', windowData) |
| | | }) |
| | | |
| | | label.on(global.DC.MouseEventType.CLICK, (e) => { |
| | | if (state.pinchFlag == true) { |
| | | return |
| | | } |
| | | |
| | | if (value[3]) { |
| | | value[3]() |
| | | } |
| | | // 定制化窗体 |
| | | const position = e.position |
| | | const lntLat = [e.overlay._position._lng, e.overlay._position._lat] |
| | | const windowData = { |
| | | position, |
| | | lntLat, |
| | | query: { |
| | | ...(value[2] || {}), |
| | | position, |
| | | lntLat |
| | | }, |
| | | useJWD: true // 仅使用经纬度 |
| | | } |
| | | dispatch('setMobileWindows', windowData) |
| | | }) |
| | | |
| | | window.urlParameterLayer.addOverlay(billboard) // 加入图标 |
| | | window.urlParameterLayer.addOverlay(label) |
| | | } |
| | | // state.drawALineLayerMany = drawALineLayerMany |
| | | // state.drawAPointLayerMany = drawAPointLayerMany |
| | | // state.isOpenDrawALineMany = value[2].name ? value[2].name : true; |
| | | // commit("cameraSetView", state.navigationStartLngLat); //移动 |
| | | } |
| | | } |
| | | } |
| | | |
| | | export default mobile |