5 files modified
1 files added
| | |
| | | <span>{{ item.label }}</span> |
| | | </li> |
| | | </ul> |
| | | <div |
| | | ref="mobile-mapContentContent" |
| | | v-show="popupWindow1" |
| | | id="mobile-map_MP1" |
| | | > |
| | | <div class="mobile-popup-imgs-heard"> |
| | | <img :src="url1" alt="" /> |
| | | <el-image |
| | | style="width: 100px; height: 100px" |
| | | :src="url1" |
| | | id="mobileBigImgs" |
| | | v-show="false" |
| | | :preview-src-list="srcList1" |
| | | > |
| | | </el-image> |
| | | 南门口 |
| | | </div> |
| | | <div class="mobile-popup-control"> |
| | | <el-link icon="el-icon-picture-outline-round" @click="mobileOpenImgs1" |
| | | >图集</el-link |
| | | > |
| | | <el-divider direction="vertical"></el-divider> |
| | | <el-link icon="el-icon-map-location">实景</el-link> |
| | | <el-divider direction="vertical"></el-divider> |
| | | <el-link icon="el-icon-aim" @click="goOn1">去这</el-link> |
| | | </div> |
| | | </div> |
| | | <!-- 地图图标弹窗↑ --> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | item.img = item.normal; |
| | | this[item.layer].show = false; |
| | | } |
| | | this.$store.dispatch("closeWindowsDom"); //关闭弹窗 |
| | | }, |
| | | initialize(viewer) { |
| | | var that = this; |
| | |
| | | this.viewer = viewer; |
| | | this.tagLayer = new this.DC.HtmlLayer("tagLayer"); |
| | | viewer.addLayer(this.tagLayer); |
| | | |
| | | this.wayLayer = new this.DC.HtmlLayer("wayLayer"); |
| | | viewer.addLayer(this.wayLayer); |
| | | |
| | | this.sceneLayer = new this.DC.VectorLayer("sceneLayer"); |
| | | viewer.addLayer(this.sceneLayer); |
| | | |
| | | this.activityLayer = new this.DC.VectorLayer("activityLayer"); |
| | | viewer.addLayer(this.activityLayer); |
| | | |
| | | this.aedLayer = new this.DC.VectorLayer("aedLayer"); |
| | | viewer.addLayer(this.aedLayer); |
| | | |
| | | this.parkLayer = new this.DC.HtmlLayer("parkLayer"); |
| | | viewer.addLayer(this.parkLayer); |
| | | |
| | | this.comeLayer = new this.DC.VectorLayer("comeLayer"); |
| | | viewer.addLayer(this.comeLayer); |
| | | |
| | |
| | | </div> |
| | | ` |
| | | ); |
| | | this.tagLayer.addOverlay(divIcon); |
| | | // e.overlay._position._lng, |
| | | // e.overlay._position._lat - 0.012, |
| | | //订阅事件1 |
| | | divIcon.on(DC.MouseEventType.CLICK, (e) => { |
| | | // console.log(e); |
| | | that.popupWindow1 = true; |
| | | // 定制化窗体 |
| | | var divForms = new DC.mobileDivForms(viewer, { |
| | | domId: "mobilePopup", |
| | | title: "成教楼 ", |
| | | className: "mobilePopup", |
| | | content: document.getElementById("mobile-map_MP1"), |
| | | position: [e.position], |
| | | }); |
| | | viewer.zoomToPosition( |
| | | new DC.Position( |
| | | e.overlay._position._lng, |
| | | e.overlay._position._lat - 0.012, |
| | | 1530, |
| | | 0, |
| | | -45 |
| | | ) |
| | | that.openPopupS( |
| | | e.position, |
| | | [e.overlay._position._lng, e.overlay._position._lat], |
| | | { name: "标签" } |
| | | ); |
| | | }); |
| | | this.tagLayer.addOverlay(divIcon); //标签 |
| | | }); |
| | | |
| | | const positions2 = this.generatePosition(50); |
| | |
| | | </div> |
| | | ` |
| | | ); |
| | | this.wayLayer.addOverlay(divIcon); |
| | | //订阅事件2 |
| | | divIcon.on(DC.MouseEventType.CLICK, (e) => { |
| | | // 定制化窗体 |
| | | that.openPopupS( |
| | | e.position, |
| | | [e.overlay._position._lng, e.overlay._position._lat], |
| | | { name: "道路" } |
| | | ); |
| | | }); |
| | | this.wayLayer.addOverlay(divIcon); //道路 |
| | | }); |
| | | |
| | | const positions3 = this.generatePosition(50); |
| | |
| | | "/img/leftnav/map-panorama.png" |
| | | ); |
| | | billboard.size = [16, 16]; |
| | | this.sceneLayer.addOverlay(billboard); |
| | | //订阅事件3 |
| | | billboard.on(DC.MouseEventType.CLICK, (e) => { |
| | | // 定制化窗体 |
| | | that.openPopupS( |
| | | e.position, |
| | | [e.wgs84Position.lng, e.wgs84Position.lat], |
| | | { name: "实景" } |
| | | ); |
| | | }); |
| | | this.sceneLayer.addOverlay(billboard); //实景 |
| | | }); |
| | | |
| | | const positions10 = this.generatePosition(50); |
| | | positions10.forEach((item) => { |
| | | const label = new this.DC.Label(item, "活动"); |
| | | label.setStyle({ |
| | | fillColor: this.DC.Color.ORANGERED, |
| | | font: "10px sans-serif", |
| | | pixelOffset: { x: 0, y: -16 }, |
| | | }); |
| | | this.activityLayer.addOverlay(label); |
| | | |
| | | const billboard = new this.DC.Billboard( |
| | | item, |
| | | "/img/leftnav/map-aed.png" |
| | | // "/img/leftnav/map-panorama.png" |
| | | ); |
| | | billboard.size = [16, 16]; |
| | | //订阅事件10 |
| | | billboard.on(DC.MouseEventType.CLICK, (e) => { |
| | | // 定制化窗体 |
| | | that.openPopupS( |
| | | e.position, |
| | | [e.wgs84Position.lng, e.wgs84Position.lat], |
| | | { name: "活动" } |
| | | ); |
| | | }); |
| | | this.activityLayer.addOverlay(billboard); //活动 |
| | | }); |
| | | |
| | | const positions4 = this.generatePosition(10); |
| | |
| | | "/img/leftnav/map-aed.png" |
| | | ); |
| | | billboard.size = [16, 16]; |
| | | |
| | | this.aedLayer.addOverlay(billboard); |
| | | //订阅事件4 |
| | | billboard.on(DC.MouseEventType.CLICK, (e) => { |
| | | // 定制化窗体 |
| | | that.openPopupS( |
| | | e.position, |
| | | [e.wgs84Position.lng, e.wgs84Position.lat], |
| | | { name: "建筑AED" } |
| | | ); |
| | | }); |
| | | this.aedLayer.addOverlay(billboard); //AED |
| | | }); |
| | | |
| | | const positions5 = this.generatePosition(120); |
| | |
| | | </div> |
| | | ` |
| | | ); |
| | | //订阅事件5 |
| | | divIcon.on(DC.MouseEventType.CLICK, (e) => { |
| | | // 定制化窗体 |
| | | that.openPopupS( |
| | | e.position, |
| | | [e.overlay._position._lng, e.overlay._position._lat], |
| | | { name: "校外街路侧停车场" } |
| | | ); |
| | | }); |
| | | this.parkLayer.addOverlay(divIcon); |
| | | }); |
| | | |
| | |
| | | "/img/leftnav/map-activity.png" |
| | | ); |
| | | billboard.size = [16, 16]; |
| | | |
| | | //订阅事件6 |
| | | billboard.on(DC.MouseEventType.CLICK, (e) => { |
| | | // 定制化窗体 |
| | | that.openPopupS( |
| | | e.position, |
| | | [e.wgs84Position.lng, e.wgs84Position.lat], |
| | | { name: "123" } |
| | | ); |
| | | }); |
| | | this.comeLayer.addOverlay(billboard); |
| | | }); |
| | | |
| | | this.tagLayer.show = false; |
| | | this.wayLayer.show = false; |
| | | this.sceneLayer.show = false; |
| | | this.activityLayer.show = false; |
| | | this.aedLayer.show = false; |
| | | this.parkLayer.show = false; |
| | | this.comeLayer.show = false; |
| | |
| | | imgsDom.click(); |
| | | }, |
| | | goOn1() {}, |
| | | openPopupS(position, lntLat, query) { |
| | | let that = this; |
| | | // 定制化窗体 |
| | | let d = { |
| | | position, |
| | | lntLat, |
| | | query: { ...(query || {}), position, lntLat }, |
| | | }; |
| | | that.$store.dispatch("setMobileWindows", d); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | if (val == "定位") { |
| | | this.$store.commit("MSET_BIGPOPUP", false); |
| | | setTimeout(() => { |
| | | // that.$refs.mobilemapBoxFrom.openPopupS( |
| | | // this.onceData.Cartesian3, |
| | | // this.onceData.position |
| | | // ); |
| | | that.$parent.$parent.$parent.$parent.openPopupS( |
| | | this.onceData.Cartesian3, |
| | | this.onceData.position |
| | | ); |
| | | // console.log(that.$refs.mobilemapBoxFrom); |
| | | // 定位 打开弹窗 |
| | | // this.mviewer.zoomToPosition( |
| | | // new that.DC.Position(p[0], p[1] - 0.016, 1530, 0, -45) |
| | | // ); |
| | | // 定制化窗体 |
| | | let d = { |
| | | position: that.onceData.Cartesian3, |
| | | lntLat: that.onceData.position, |
| | | query: this.onceData, |
| | | }; |
| | | that.popupsDom = that.$store.dispatch("setMobileWindows", d); |
| | | }, 500); |
| | | } |
| | | }, |
| New file |
| | |
| | | <template> |
| | | <div |
| | | ref="mobile-mapContentContent" |
| | | v-show="!MobileWindowsHide" |
| | | id="mobile-map_content_content" |
| | | > |
| | | <div class="mobile-popup-imgs-heard"> |
| | | <img :src="url" alt="" /> |
| | | <el-image |
| | | style="width: 100px; height: 100px" |
| | | :src="url" |
| | | id="mobileBigImgs" |
| | | v-show="false" |
| | | :preview-src-list="srcList" |
| | | > |
| | | </el-image> |
| | | <div>{{ query }}</div> |
| | | <!-- 哈工大A10公寫总建筑面积30740平方米,于2001年采用货款方式高标准建造并投入使用。整个楼体共分十层,地上九层为公寫主体。公寓外观呈工字型,公寓内房司以A、B、C三个区域別分,与哈工大雄厚的工科底蕴遥相呼应,是哈尔滨工业大学学生公寫的标志性建筑 --> |
| | | </div> |
| | | <div class="mobile-popup-control"> |
| | | <el-link icon="el-icon-picture-outline-round" @click="mobileOpenImgs" |
| | | >图集</el-link |
| | | > |
| | | <el-divider direction="vertical"></el-divider> |
| | | <el-link icon="el-icon-map-location">实景</el-link> |
| | | <el-divider direction="vertical"></el-divider> |
| | | <el-link icon="el-icon-aim" @click="goOn">去这</el-link> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { mapGetters } from "vuex"; |
| | | export default { |
| | | name: "mobileWindow", |
| | | computed: { |
| | | ...mapGetters(["MobileWindowsHide", "query"]), |
| | | }, |
| | | watch: { |
| | | MobileWindowsHide() { |
| | | // this.fullscreenLoading = true; |
| | | setTimeout(() => { |
| | | // this.fullscreenLoading = false; |
| | | console.log("地图点击弹窗数据请求参数", this.query); |
| | | }, 500); |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | | fullscreenLoading: false, |
| | | url: "/img/job/one.jpg", |
| | | positions: "", |
| | | srcList: [ |
| | | "https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg", |
| | | "https://fuss10.elemecdn.com/1/8e/aeffeb4de74e2fde4bd74fc7b4486jpeg.jpeg", |
| | | ], |
| | | }; |
| | | }, |
| | | methods: { |
| | | mobileOpenImgs() { |
| | | let imgsDom = document.getElementById("mobileBigImgs"); |
| | | imgsDom.click(); |
| | | }, |
| | | goOn() {}, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style> |
| | | </style> |
| | |
| | | <div id="mobile-viewer-container"> |
| | | <!-- 地图图标弹窗↓ --> |
| | | <div id="mobile-map_popup_content"></div> |
| | | <div |
| | | ref="mobile-mapContentContent" |
| | | v-show="popupWindow" |
| | | id="mobile-map_content_content" |
| | | > |
| | | <div class="mobile-popup-imgs-heard"> |
| | | <img :src="url" alt="" /> |
| | | <el-image |
| | | style="width: 100px; height: 100px" |
| | | :src="url" |
| | | id="mobileBigImgs" |
| | | v-show="false" |
| | | :preview-src-list="srcList" |
| | | > |
| | | </el-image> |
| | | <div>坐标 {{ positions }}</div> |
| | | 哈工大A10公寫总建筑面积30740平方米,于2001年采用货款方式高标准建造并投入使用。整个楼体共分十层,地上九层为公寫主体。公寓外观呈工字型,公寓内房司以A、B、C三个区域別分,与哈工大雄厚的工科底蕴遥相呼应,是哈尔滨工业大学学生公寫的标志性建筑 |
| | | </div> |
| | | <div class="mobile-popup-control"> |
| | | <el-link icon="el-icon-picture-outline-round" @click="mobileOpenImgs" |
| | | >图集</el-link |
| | | > |
| | | <el-divider direction="vertical"></el-divider> |
| | | <el-link icon="el-icon-map-location">实景</el-link> |
| | | <el-divider direction="vertical"></el-divider> |
| | | <el-link icon="el-icon-aim" @click="goOn">去这</el-link> |
| | | </div> |
| | | </div> |
| | | <mobileWindow></mobileWindow> |
| | | <!-- 地图图标弹窗↑ --> |
| | | <!-- 控制↓ --> |
| | | <mobileLeftNav ref="mobileLeftNav"></mobileLeftNav> |
| | |
| | | data() { |
| | | return { |
| | | DC: "", |
| | | popupsDom: "", |
| | | positions: "", |
| | | url: "/img/job/one.jpg", |
| | | srcList: [ |
| | |
| | | }; |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["mviewer", "mBigPopup", "mBigPopupAfter", "iconHide"]), |
| | | ...mapGetters([ |
| | | "mviewer", |
| | | "MobileWindowsHide", |
| | | "mBigPopup", |
| | | "mBigPopupAfter", |
| | | "iconHide", |
| | | "popupsDom", |
| | | ]), |
| | | }, |
| | | watch: { |
| | | mBigPopup() { |
| | |
| | | }); |
| | | that.$refs.mobileLeftNav.initialize(viewer); |
| | | that.$store.commit("MSET_VIEWER", viewer); |
| | | that.$store.commit("MSET_DC", DC); |
| | | const popup = viewer.popup; |
| | | |
| | | popup.hide(); |
| | |
| | | if (!that.iconHide) { |
| | | that.$store.commit("MSET_ICONHIDE", true); |
| | | } |
| | | if (that.popupWindow && that.popupsDom) { |
| | | that.popupsDom.closeOur(); |
| | | that.popupWindow = false; |
| | | } |
| | | that.$store.dispatch("closeWindowsDom"); //关闭弹窗 |
| | | // if (!that.MobileWindowsHide && that.popupsDom) { |
| | | // that.popupsDom.closeOur(); |
| | | // that.$store.commit("MSET_MOBILEWINDOWSHIDE", true); |
| | | // } |
| | | // nowPosition = [e.wgs84Position.lng, e.wgs84Position.lat]; |
| | | // console.log(nowPosition); |
| | | }); |
| | |
| | | DC.ready(initViewer); |
| | | }, |
| | | methods: { |
| | | openPopupS(position, lntLat) { |
| | | openPopupS(position, lntLat, query) { |
| | | let that = this; |
| | | // 定制化窗体 |
| | | that.popupsDom = new that.DC.mobileDivForms(that.mviewer, { |
| | | domId: "mobilePopup", |
| | | title: "成教楼 ", |
| | | className: "mobilePopup", |
| | | content: document.getElementById("mobile-map_content_content"), |
| | | position: [position], |
| | | }); |
| | | that.positions = lntLat; |
| | | that.popupWindow = true; |
| | | // let flying = new DC.Flying(viewer); |
| | | // flying.positions = [ |
| | | // `${nowPosition[0]},${nowPosition[0]},0,-29`, |
| | | // `${e.wgs84Position.lng},${e.wgs84Position.lat},0,-29`, |
| | | // ]; |
| | | // flying.start(); |
| | | // console.log(e.wgs84Position.lng, e.wgs84Position.lat); |
| | | that.mviewer.zoomToPosition( |
| | | new that.DC.Position(lntLat[0], lntLat[1] - 0.012, 1530, 0, -45) |
| | | ); |
| | | }, |
| | | mobileOpenImgs() { |
| | | let imgsDom = document.getElementById("mobileBigImgs"); |
| | | imgsDom.click(); |
| | | }, |
| | | goOn() { |
| | | // if (navigator.geolocation) { |
| | | // navigator.geolocation.watchPosition(backPoint); |
| | | // } |
| | | // function backPoint(res) { |
| | | // console.log(res); |
| | | // let position = [res.coords.longitude, res.coords.latitude]; |
| | | // console.log(position); |
| | | // } |
| | | // this.getLocation(); |
| | | // location((res) => { |
| | | // console.log(res); |
| | | // alert(res.message); |
| | | // }); |
| | | // console.log(returnCitySN["cip"]); |
| | | let d = { |
| | | position, |
| | | lntLat, |
| | | query: { ...(query || {}), position, lntLat }, |
| | | }; |
| | | that.$store.dispatch("setMobileWindows", d); |
| | | }, |
| | | getLocation() { |
| | | // let _that = this; |
| | |
| | | mviewer: state => state.mobile.mviewer, |
| | | mBigPopup: state => state.mobile.mBigPopup, |
| | | mBigPopupAfter: state => state.mobile.mBigPopupAfter, |
| | | iconHide: state => state.mobile.iconHide |
| | | iconHide: state => state.mobile.iconHide, |
| | | DC: state => state.mobile.DC, |
| | | MobileWindowsHide: state => state.mobile.MobileWindowsHide, |
| | | popupsDom: state => state.mobile.popupsDom, |
| | | query: state => state.mobile.query |
| | | } |
| | | const getters = { |
| | | ...mobile, |
| | |
| | | mBigPopupAfter: false, |
| | | ips: '', |
| | | iconHide: false, |
| | | DC: '', |
| | | MobileWindowsHide: true, |
| | | popupsDom: '', |
| | | query: {} |
| | | }, |
| | | mutations: { |
| | | MSET_VIEWER(state, viewer) { |
| | |
| | | }, |
| | | MSET_ICONHIDE(state, viewer) { |
| | | state.iconHide = viewer |
| | | }, |
| | | MSET_DC(state, viewer) { |
| | | state.DC = viewer |
| | | }, |
| | | MSET_MOBILEWINDOWSHIDE(state, viewer) { |
| | | state.MobileWindowsHide = viewer |
| | | }, |
| | | MSET_POPUPDOM(state, viewer) { |
| | | state.popupsDom = viewer |
| | | }, |
| | | MSET_QUERY(state, viewer) { |
| | | state.query = viewer |
| | | } |
| | | }, |
| | | actions: { |
| | | |
| | | setMobileWindows({ state, commit }, data) { |
| | | // 传递响应数据 |
| | | commit("MSET_QUERY", data.query) |
| | | // 定制化窗体 |
| | | let popupsDom = new state.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) |
| | | state.mviewer.zoomToPosition( |
| | | new state.DC.Position(data.lntLat[0], data.lntLat[1] - 0.012, 1530, 0, -45) |
| | | ); |
| | | commit("MSET_POPUPDOM", popupsDom) |
| | | }, |
| | | closeWindowsDom({ state, commit }) { |
| | | if (!state.MobileWindowsHide && state.popupsDom) { |
| | | state.popupsDom.closeOur(); |
| | | commit("MSET_MOBILEWINDOWSHIDE", true); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |