| | |
| | | /* eslint-disable camelcase */ |
| | | <template> |
| | | <!-- mobile --> |
| | | <div id="mobile-viewer-container"> |
| | | <div |
| | | v-show="popupFlag" |
| | | id="mobile-modelPopup" |
| | | style=" |
| | | width: 366px; |
| | | height: 240px; |
| | | background: url(/img/bg/nav-bg.jpeg) no-repeat; |
| | | background-size: 100% 100%; |
| | | " |
| | | > |
| | | <div class="mobile-header"> |
| | | <div class="mobile-logo"> |
| | | <img src="/img/navicon/map.png" alt="" /> |
| | | </div> |
| | | <div class="mobile-title">明德楼</div> |
| | | <div class="mobile-close"> |
| | | <img src="/img/navicon/close.png" alt="" /> |
| | | </div> |
| | | </div> |
| | | <div class="mobile-content"> |
| | | <div class="mobile-img"></div> |
| | | <div class="mobile-meau"></div> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- 随地图改变图标弹窗↓ --> |
| | | <div id="mobile-map_popup_content"></div> |
| | | <div |
| | | ref="mobile-mapContentContent" |
| | | v-show="popupWindow" |
| | | id="mobile-map_content_content" |
| | | > |
| | | <div class="mobile-arc-bcg"> |
| | | <img src="/img/job/one.jpg" alt="" @click="once" /> |
| | | </div> |
| | | </div> |
| | | <mobileWindow></mobileWindow> |
| | | <!-- 地图固定弹窗 --> |
| | | <mobileWindowFixed></mobileWindowFixed> |
| | | <!-- 地图图标弹窗↑ --> |
| | | <!-- 控制↓ --> |
| | | <mobileLeftNav ref="mobileLeftNav"></mobileLeftNav> |
| | | <mobileCortrol ref="mobileCortrol"></mobileCortrol> |
| | | <mobileCortrolButtom ref="mobileCortrolButtom"></mobileCortrolButtom> |
| | | <mobileCortrolSearch ref="mobileCortrolSearch"></mobileCortrolSearch> |
| | | <!-- 控制↑ --> |
| | | <!-- 控制大弹窗的弹窗 --> |
| | | <mobilePopupOurAfter v-if="mBigPopupAfter"></mobilePopupOurAfter> |
| | | <!-- 大弹窗 --> |
| | | <mobilePopupOur :style="[bigPopup]" v-if="mBigPopup"></mobilePopupOur> |
| | | <!-- 测试-跳转位置 --> |
| | | <mobileGoTo></mobileGoTo> |
| | | <!-- 实景窗口 --> |
| | | <mobilePanorama></mobilePanorama> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { mapGetters } from "vuex"; |
| | | |
| | | export default { |
| | | name: "mobilemapBox", |
| | | data() { |
| | | return { |
| | | popupFlag: false, |
| | | popupWindow: false, |
| | | DC: "", |
| | | bigPopup: { |
| | | width: 0, |
| | | height: 0, |
| | | // transition: "all 3s", |
| | | }, |
| | | }; |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["mviewer"]), |
| | | ...mapGetters([ |
| | | "mviewer", |
| | | "MobileWindowsHide", |
| | | "mBigPopup", |
| | | "mBigPopupAfter", |
| | | "iconHide", |
| | | "popupsDom", |
| | | "MobileWindowsHideFixed", |
| | | ]), |
| | | }, |
| | | watch: { |
| | | mBigPopup() { |
| | | if (this.mBigPopup) { |
| | | this.bigPopup.width = "100%"; |
| | | this.bigPopup.height = "100%"; |
| | | this.bigPopup.display = "inline-block"; |
| | | } else { |
| | | this.bigPopup.width = "0"; |
| | | this.bigPopup.height = "0"; |
| | | this.bigPopup.display = "none"; |
| | | } |
| | | }, |
| | | }, |
| | | mounted() { |
| | | var DC = global.DC; |
| | | this.DC = DC; |
| | | |
| | | var that = this; |
| | | |
| | |
| | | }, |
| | | }); |
| | | that.$refs.mobileLeftNav.initialize(viewer); |
| | | // console.log(DC, 45678); |
| | | |
| | | that.$store.commit("MSET_VIEWER", viewer); |
| | | // that.$store.commit("MSET_DC", DC); |
| | | const popup = viewer.popup; |
| | | |
| | | popup.hide(); |
| | | |
| | | that.$store.commit("MSET_VIEWER", viewer); |
| | | |
| | | const baselayer = DC.ImageryLayerFactory.createArcGisImageryLayer({ |
| | | url: "http://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer", |
| | |
| | | name: "影像", |
| | | }); |
| | | |
| | | // // eslint-disable-next-line camelcase |
| | | // eslint-disable-next-line camelcase |
| | | // const baselayer_shaded = DC.ImageryLayerFactory.createArcGisImageryLayer({ |
| | | // url: "http://services.arcgisonline.com/arcgis/rest/services/World_Shaded_Relief/MapServer", |
| | | // }); |
| | |
| | | // name: "地形", |
| | | // }); |
| | | |
| | | const layer = new DC.TilesetLayer("layer"); |
| | | viewer.addLayer(layer); |
| | | const tileset = new DC.Tileset( |
| | | "http://resource.dvgis.cn/data/3dtiles/ljz/tileset.json" |
| | | ); |
| | | const style = new DC.TilesetStyle(); |
| | | style.color = { |
| | | conditions: [ |
| | | ["${Height} >= 300", "rgba(45, 0, 75, 0.5)"], |
| | | ["${Height} >= 200", "rgb(102, 71, 151)"], |
| | | ["${Height} >= 100", "rgb(170, 162, 204)"], |
| | | ["${Height} >= 50", "rgb(224, 226, 238)"], |
| | | ["${Height} >= 25", "rgb(252, 230, 200)"], |
| | | ["${Height} >= 10", "rgb(248, 176, 87)"], |
| | | ["${Height} >= 5", "rgb(198, 106, 11)"], |
| | | ["true", "rgb(127, 59, 8)"], |
| | | ], |
| | | }; |
| | | |
| | | viewer.use(new DC.Measure()); |
| | | |
| | | tileset.setStyle(style); |
| | | layer.addOverlay(tileset); |
| | | viewer.flyTo(tileset); |
| | | |
| | | tileset.on(DC.MouseEventType.CLICK, (e) => { |
| | | // that.popupFlag = true |
| | | that.popupWindow = true; |
| | | |
| | | console.log(e); |
| | | |
| | | viewer.scene.globe.depthTestAgainstTerrain = false; |
| | | |
| | | // console.log(document.getElementById("mobile-map_content_content")); |
| | | |
| | | // 定制化窗体 |
| | | var divForms = new DC.divForms(viewer, { |
| | | domId: "div1", |
| | | title: "成教楼 ", |
| | | className: "divForms-dom", |
| | | content: document.getElementById("mobile-map_content_content"), |
| | | position: [e.position], |
| | | }); |
| | | |
| | | // popup.setWrapper('<div></div>') |
| | | |
| | | // popup.showAt(e.position, document.getElementById('modelPopup')) |
| | | // 地图移动事件 |
| | | viewer.on(DC.MouseEventType.MOUSE_MOVE, (e) => { |
| | | if (!that.iconHide) { |
| | | that.$store.commit("MSET_ICONHIDE", true); |
| | | } |
| | | if (!that.MobileWindowsHide) { |
| | | // that.$store.dispatch("closeMobileWindowsDom"); //关闭随地图弹窗 |
| | | } |
| | | }); |
| | | |
| | | // viewer.zoomToPosition( |
| | | // new DC.Position(105.565571, 31.984708, 15362816, 0, -90) |
| | | // ) |
| | | //自带白模型↓ |
| | | // const layer = new DC.TilesetLayer("layer"); |
| | | // viewer.addLayer(layer); |
| | | // const tileset = new DC.Tileset( |
| | | // "http://resource.dvgis.cn/data/3dtiles/ljz/tileset.json" |
| | | // ); |
| | | // const style = new DC.TilesetStyle(); |
| | | // style.color = { |
| | | // conditions: [ |
| | | // ["${Height} >= 300", "rgba(45, 0, 75, 0.5)"], |
| | | // ["${Height} >= 200", "rgb(102, 71, 151)"], |
| | | // ["${Height} >= 100", "rgb(170, 162, 204)"], |
| | | // ["${Height} >= 50", "rgb(224, 226, 238)"], |
| | | // ["${Height} >= 25", "rgb(252, 230, 200)"], |
| | | // ["${Height} >= 10", "rgb(248, 176, 87)"], |
| | | // ["${Height} >= 5", "rgb(198, 106, 11)"], |
| | | // ["true", "rgb(127, 59, 8)"], |
| | | // ], |
| | | // }; |
| | | |
| | | // viewer.use(new DC.Measure()); |
| | | |
| | | // tileset.setStyle(style); |
| | | // layer.addOverlay(tileset); |
| | | // viewer.flyTo(tileset); |
| | | //自带白模型↑ |
| | | |
| | | //精细模型↓ |
| | | const tilesetLayer = new that.DC.TilesetLayer("tilesetLayer"); |
| | | viewer.addLayer(tilesetLayer); |
| | | const tileset = new that.DC.Tileset( |
| | | "http://data.mars3d.cn/3dtiles/max-shihua/tileset.json", |
| | | { |
| | | luminanceAtZenith: 0.5, |
| | | } |
| | | ); |
| | | tilesetLayer.addOverlay(tileset); |
| | | viewer.flyTo(tileset); |
| | | //精细模型↑ |
| | | |
| | | //瀑布流↓ |
| | | const wallLayer = new that.DC.VectorLayer("wallLayer"); |
| | | viewer.addLayer(wallLayer); |
| | | var arr = [ |
| | | [115.87597219, 28.74628526, 100], |
| | | [115.87556558, 28.74415792, 100], |
| | | [115.87459782, 28.74197687, 100], |
| | | [115.87371834, 28.74219927, 100], |
| | | [115.87210924, 28.74182217, 100], |
| | | [115.86469971, 28.73630725, 100], |
| | | [115.86387107, 28.73620123, 100], |
| | | [115.86274498, 28.73616026, 100], |
| | | [115.86173699, 28.7424135, 100], |
| | | [115.86105468, 28.74643934, 100], |
| | | [115.8660924, 28.74642593, 100], |
| | | [115.87597219, 28.74628526, 100], |
| | | ]; |
| | | arr.forEach((item) => { |
| | | item = item.join(","); |
| | | }); |
| | | arr = arr.join(";"); |
| | | const wall = new that.DC.Wall(arr); |
| | | wall.setStyle({ |
| | | material: new that.DC.WallTrailMaterialProperty({ |
| | | color: that.DC.Color.DEEPSKYBLUE, |
| | | speed: 4, |
| | | }), |
| | | }); |
| | | wallLayer.addOverlay(wall); |
| | | |
| | | viewer.use(new that.DC.Measure()); |
| | | //瀑布流↑ |
| | | |
| | | //飞入起始点 |
| | | // that.$store.dispatch("mapFlyTo", { |
| | | // lntLat: [115.87186406, 28.74449337, 1200], |
| | | // heading: 0, |
| | | // pitch: -45, |
| | | // roll: 0, |
| | | // noOpen: true, |
| | | // }); |
| | | //地图渲染完成执行srore中MSET_CREADE |
| | | // that.$store.dispatch("MSET_CREADE"); |
| | | |
| | | tileset.on(DC.MouseEventType.CLICK, (e) => { |
| | | viewer.scene.globe.depthTestAgainstTerrain = false; |
| | | // console.log(e); |
| | | |
| | | // 定制化窗体 |
| | | that.openPopupS( |
| | | e.position, |
| | | [e.wgs84Position.lng, e.wgs84Position.lat], |
| | | { |
| | | name: e.layer._bid, |
| | | address: e.layer.type, |
| | | introduce: e.layer._id, |
| | | } |
| | | ); |
| | | }); |
| | | |
| | | viewer.compass.enable = false; |
| | | viewer.zoomController.enable = false; |
| | | viewer.zoomController.enable = true; |
| | | viewer.locationBar.enable = false; |
| | | viewer.distanceLegend.enable = false; |
| | | viewer.distanceLegend.enable = true; |
| | | } |
| | | |
| | | DC.ready(initViewer); |
| | | }, |
| | | methods: { |
| | | once() { |
| | | console.log(123); |
| | | // console.log(global, 123456789); |
| | | openPopupS(position, lntLat, query) { |
| | | let that = this; |
| | | // 定制化窗体 |
| | | let d = { |
| | | position, |
| | | lntLat, |
| | | query: { introduce: position, address: lntLat, ...(query || {}) }, |
| | | useJWD: true, //仅使用经纬度 |
| | | }; |
| | | that.$store.dispatch("setMobileWindows", d); |
| | | }, |
| | | }, |
| | | }; |