Merge branch 'master' of http://192.168.0.105:10010/r/school-web
10 files modified
1 files added
| | |
| | | <template> |
| | | <div id="app"> |
| | | <router-view></router-view> |
| | | </div> |
| | | <div id="app"> |
| | | <router-view></router-view> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | export default { |
| | | name: 'App', |
| | | data () { |
| | | return { |
| | | } |
| | | }, |
| | | mounted () { |
| | | if (this._isMobile()) { |
| | | // 手机端 |
| | | this.$router.replace('/mobileLayout') |
| | | } else { |
| | | // pc端 |
| | | this.$router.replace('/pcLayout') |
| | | } |
| | | }, |
| | | methods: { |
| | | _isMobile () { |
| | | const flag = navigator.userAgent.match( |
| | | /(phone|pad|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows phone)/i |
| | | ) |
| | | return flag |
| | | } |
| | | name: "App", |
| | | data() { |
| | | return { |
| | | // consoles: 1, |
| | | // consoles1: 1, |
| | | }; |
| | | }, |
| | | mounted() { |
| | | let that = this; |
| | | // console.log(frames, 789456); |
| | | // setInterval(function () { |
| | | // check(); |
| | | // }, 4000); |
| | | // var check = function () { |
| | | // function doCheck(a) { |
| | | // if (("" + a / a)["length"] !== 1 || a % 20 === 0) { |
| | | // // (function () {}["constructor"]("debugger")()); |
| | | // console.log("已打开控制台1"); |
| | | // that.consoles++; |
| | | // return; |
| | | // } else { |
| | | // // (function () {}["constructor"]("debugger")()); |
| | | // // console.log("已打开控制台2"); |
| | | // // return; |
| | | // that.consoles++; |
| | | // } |
| | | // doCheck(++a); |
| | | // } |
| | | // try { |
| | | // doCheck(0); |
| | | // } catch (err) {} |
| | | // }; |
| | | // check(); |
| | | if (this._isMobile()) { |
| | | // 手机端 |
| | | this.$router.replace("/mobileLayout"); |
| | | } else { |
| | | // pc端 |
| | | this.$router.replace("/pcLayout"); |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | _isMobile() { |
| | | const flag = navigator.userAgent.match( |
| | | /(phone|pad|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows phone)/i |
| | | ); |
| | | return flag; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style> |
| | | html, |
| | | body { |
| | | width: 100%; |
| | | height: 100%; |
| | | margin: 0; |
| | | padding: 0; |
| | | overflow: hidden; |
| | | width: 100%; |
| | | height: 100%; |
| | | margin: 0; |
| | | padding: 0; |
| | | overflow: hidden; |
| | | } |
| | | #app { |
| | | font-family: 'Avenir', Helvetica, Arial, sans-serif; |
| | | -webkit-font-smoothing: antialiased; |
| | | -moz-osx-font-smoothing: grayscale; |
| | | color: #2c3e50; |
| | | width: 100%; |
| | | height: 100%; |
| | | font-family: "Avenir", Helvetica, Arial, sans-serif; |
| | | -webkit-font-smoothing: antialiased; |
| | | -moz-osx-font-smoothing: grayscale; |
| | | color: #2c3e50; |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | </style> |
| New file |
| | |
| | | /* |
| | | * @Author: Morpheus |
| | | * @Date: 2021-05-09 15:17:44 |
| | | * @Last Modified by: liu |
| | | * @Last Modified time: 2021-12-27 09:12:24 |
| | | */ |
| | | // 搜索 |
| | | import request from '@/router/axios' |
| | | |
| | | //出入-AED-停车场 |
| | | export const getListSearch = (params) => { |
| | | return request({ |
| | | url: 'blade-architecture/architecture/selectLook', |
| | | method: 'get', |
| | | params: params |
| | | }) |
| | | } |
| | | |
| | |
| | | <div class="m-l-inbut zoom-in" @click="zoomIn"> |
| | | <i class="el-icon-refresh"></i> |
| | | </div> |
| | | <div |
| | | class="m-l-inbut zoom-in m-l-inbut-2d" |
| | | :class="{ active: dimension == '2D' }" |
| | | @click="zoomIn('2D')" |
| | | > |
| | | 2D |
| | | </div> |
| | | <div |
| | | class="m-l-inbut zoom-in m-l-inbut-3d" |
| | | :class="{ active: dimension == '2.5D' }" |
| | | @click="zoomIn('2.5D')" |
| | | > |
| | | 2.5 |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | }; |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["mviewer"]), |
| | | ...mapGetters(["mviewer", "startPointFn", "dimension"]), |
| | | }, |
| | | created() { |
| | | this.DC = global.DC; |
| | | }, |
| | | methods: { |
| | | zoomIn(val) { |
| | | this.$store.dispatch("mapFlyTo", { |
| | | //飞入 |
| | | lntLat: [115.87988885, 28.72502592, 2100], |
| | | // lntLat: [115.87186406, 28.74449337, 1200], |
| | | // lntLat: [121.50492752204283, 31.21567802276832, 2530], |
| | | heading: 0, |
| | | pitch: -45, |
| | | roll: 0, |
| | | noOpen: true, |
| | | }); |
| | | // this.$store.dispatch("mapFlyTo", { |
| | | // //飞入 |
| | | // lntLat: [115.87988885, 28.72502592, 2100], |
| | | // // lntLat: [115.87186406, 28.74449337, 1200], |
| | | // // lntLat: [121.50492752204283, 31.21567802276832, 2530], |
| | | // heading: 0, |
| | | // pitch: -45, |
| | | // roll: 0, |
| | | // noOpen: true, |
| | | // }); |
| | | if (val) { |
| | | this.$store.dispatch("MSET_DIMENSIONS", val); |
| | | return; |
| | | } |
| | | this.startPointFn(); |
| | | }, |
| | | }, |
| | | }; |
| | |
| | | width: 35px; |
| | | height: 35px; |
| | | background-color: rgb(33, 150, 243); |
| | | // stroke-width: 10; |
| | | // stroke: #fff; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | |
| | | margin-bottom: 12px; |
| | | border-radius: 5px; |
| | | } |
| | | .m-l-inbut-2d { |
| | | position: relative; |
| | | top: 60px; |
| | | font-size: 16px; |
| | | &:hover { |
| | | background-color: rgb(21, 136, 230); |
| | | box-shadow: -2px -2px 3px rgb(3, 74, 136) inset; |
| | | } |
| | | } |
| | | .m-l-inbut-3d { |
| | | @extend .m-l-inbut-2d; |
| | | top: 55px; |
| | | } |
| | | .active { |
| | | background-color: rgb(72, 157, 226); |
| | | box-shadow: -2px -2px 3px rgb(16, 93, 161) inset; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | tabTable: [], |
| | | ccData: [ |
| | | { |
| | | lnt: 115.87071885, |
| | | lnt: 115.86471885, |
| | | lat: 28.74382592, |
| | | }, |
| | | { |
| | | lnt: 115.86711312, |
| | | lat: 28.74615701, |
| | | lat: 28.74315701, |
| | | }, |
| | | { |
| | | lnt: 115.86972136, |
| | | lat: 28.74609846, |
| | | lnt: 115.86872136, |
| | | lat: 28.74009846, |
| | | }, |
| | | { |
| | | lnt: 115.86983129, |
| | | lat: 28.741337, |
| | | lnt: 115.87413129, |
| | | lat: 28.743337, |
| | | }, |
| | | ], |
| | | }; |
| | |
| | | ><el-button |
| | | slot="append" |
| | | class="iconSearch" |
| | | icon="el-icon-search" |
| | | icon="el-icon-search icon" |
| | | @click="search" |
| | | ></el-button> |
| | | </el-input> |
| | |
| | | height: 30px; |
| | | padding-top: 0; |
| | | padding-bottom: 0; |
| | | background-color: rgb(33, 150, 243); |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | font-size: 24px; |
| | | color: #fff; |
| | | } |
| | | } |
| | | } |
| | |
| | | imgStyle: { |
| | | right: "0", |
| | | }, |
| | | // coutrolStyle: { |
| | | // position: " absolute", |
| | | // left: "-26px", |
| | | // top: "114px", |
| | | // right: "auto", |
| | | // width: "25px", |
| | | // height: "60px", |
| | | // backgroundColor: "#fff", |
| | | // borderRadius: "10px", |
| | | // display: "flex", |
| | | // alignItems: "center", |
| | | // justifyContent: "center", |
| | | // transition: "left 3s", |
| | | // }, |
| | | leftNavData: [ |
| | | { |
| | | flag: false, |
| | |
| | | { |
| | | flag: false, |
| | | label: "监控", |
| | | img: "/img/leftnav/scene.png", |
| | | normal: "/img/leftnav/scene.png", |
| | | checked: "/img/leftnav/scene-checked.png", |
| | | img: "/img/leftnav/monitor.png", |
| | | normal: "/img/leftnav/monitor.png", |
| | | checked: "/img/leftnav/monitor-checked.png", |
| | | layer: "videoLayer", |
| | | methods: getListVideo, |
| | | imgSrc: "img/leftnav/map-panorama.png", |
| | | imgSrc: "/img/leftnav/map-monitor.png", |
| | | // imgSrc: "img/mobile/blue.png", |
| | | }, |
| | | // { |
| | |
| | | changeIconHide() { |
| | | let isif = this.iconHide; |
| | | this.$store.commit("MSET_ICONHIDE", !isif); |
| | | }, |
| | | generatePosition(num) { |
| | | const list = []; |
| | | for (let i = 0; i < num; i++) { |
| | | const lng = 121.0493 + Math.random() * 0.5; |
| | | const lat = 31.2583 + Math.random() * 0.5; |
| | | list.push(new this.DC.Position(lng, lat, 0)); |
| | | } |
| | | return list; |
| | | }, |
| | | leftNavClick(item) { |
| | | //判断并关闭已开启标签 |
| | |
| | | this.comeLayer = new this.DC.HtmlLayer("comeLayer"); |
| | | viewer.addLayer(this.comeLayer); |
| | | |
| | | // const positions1 = this.generatePosition(4); |
| | | // positions1.forEach((item, index) => { |
| | | // const divIcon = new this.DC.DivIcon( |
| | | // item, |
| | | // ` |
| | | // <div class="tag-entitys-box"> |
| | | // <div class="tag-content"> |
| | | // 南门口 |
| | | // </div> |
| | | // <div class="tag-angle-content"> |
| | | // <img src="https://map.hit.edu.cn/images/tarrow_xq.png"> |
| | | // </div> |
| | | // </div> |
| | | // ` |
| | | // ); |
| | | // // e.overlay._position._lng, |
| | | // // e.overlay._position._lat - 0.012, |
| | | // //订阅事件1 |
| | | // divIcon.on(DC.MouseEventType.CLICK, (e) => { |
| | | // // 定制化窗体 |
| | | // that.openPopupS( |
| | | // e.position, |
| | | // [e.overlay._position._lng, e.overlay._position._lat], |
| | | // { name: "标签" } |
| | | // ); |
| | | // }); |
| | | // this.tagLayer.addOverlay(divIcon); //标签 |
| | | // }); |
| | | // this.tagLayer["positions"] = positions1; |
| | | |
| | | // const positions2 = this.generatePosition(50); |
| | | // positions2.forEach((item, index) => { |
| | | // const divIcon = new this.DC.DivIcon( |
| | | // item, |
| | | // ` |
| | | // <div class="way-entitys-box"> |
| | | // <div class="way-title" style="border: white 1px solid; padding-left: 2px;font-size: 12px; background: #0066ff; width: 12px;line-height: 13px; padding:2px 1px 2px 1px; color:white;"> |
| | | // 工建街 |
| | | // </div> |
| | | // <div class="way-sign-box"> |
| | | // <img src="https://map.hit.edu.cn/images/roadsign3.png"> |
| | | // </div> |
| | | // </div> |
| | | // ` |
| | | // ); |
| | | // //订阅事件2 |
| | | // divIcon.on(DC.MouseEventType.CLICK, (e) => { |
| | | // // 定制化窗体 |
| | | // that.openPopupS( |
| | | // e.position, |
| | | // [e.overlay._position._lng, e.overlay._position._lat], |
| | | // { name: "道路" } |
| | | // ); |
| | | // }); |
| | | // this.wayLayer.addOverlay(divIcon); //道路 |
| | | // }); |
| | | // this.wayLayer["positions"] = positions2; |
| | | |
| | | // const positions3 = this.generatePosition(50); |
| | | // positions3.forEach((item) => { |
| | | // const billboard = new this.DC.Billboard( |
| | | // item, |
| | | // "/img/leftnav/map-panorama.png" |
| | | // ); |
| | | // billboard.size = [16, 16]; |
| | | // //订阅事件3 |
| | | // billboard.on(DC.MouseEventType.CLICK, (e) => { |
| | | // // 定制化窗体 |
| | | // that.openPopupS( |
| | | // e.position, |
| | | // [e.wgs84Position.lng, e.wgs84Position.lat], |
| | | // { name: "实景" } |
| | | // ); |
| | | // }); |
| | | // this.sceneLayer.addOverlay(billboard); //实景 |
| | | // }); |
| | | // this.sceneLayer["positions"] = positions3; |
| | | |
| | | // 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); //活动 |
| | | // }); |
| | | // this.activityLayer["positions"] = positions10; |
| | | |
| | | // const positions4 = this.generatePosition(10); |
| | | // positions4.forEach((item, index) => { |
| | | // const label = new this.DC.Label(item, "建筑AED"); |
| | | // label.setStyle({ |
| | | // fillColor: this.DC.Color.ORANGERED, |
| | | // font: "10px sans-serif", |
| | | // pixelOffset: { x: 0, y: -16 }, |
| | | // }); |
| | | // this.aedLayer.addOverlay(label); |
| | | |
| | | // const billboard = new this.DC.Billboard( |
| | | // item, |
| | | // "/img/leftnav/map-aed.png" |
| | | // ); |
| | | // billboard.size = [16, 16]; |
| | | // //订阅事件4 |
| | | // billboard.on(DC.MouseEventType.CLICK, (e) => { |
| | | // // 定制化窗体 |
| | | // that.openPopupS( |
| | | // e.position, |
| | | // [e.wgs84Position.lng, e.wgs84Position.lat], |
| | | // { name: "建筑AED" } |
| | | // ); |
| | | // }); |
| | | // this.aedLayer.addOverlay(billboard); //AED |
| | | // }); |
| | | // this.aedLayer["positions"] = positions4; |
| | | |
| | | // const positions5 = this.generatePosition(120); |
| | | // positions5.forEach((item, index) => { |
| | | // const divIcon = new this.DC.DivIcon( |
| | | // item, |
| | | // ` |
| | | // <div class="park-entitys-box"> |
| | | // <div class="park-title" alt="校外街路侧停车场"> |
| | | // </div> |
| | | // <div class="park-sign-box"> |
| | | // <div> |
| | | // <img src="https://map.hit.edu.cn/images/p-biao.png" width="14" height="14" alt="校外街路侧停车场" title="校外街路侧停车场"> |
| | | // </div> |
| | | // <div> |
| | | // <img src="https://map.hit.edu.cn/images/roadsign.png" width="5" height="21"> |
| | | // </div> |
| | | // </div> |
| | | // </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); |
| | | // }); |
| | | // this.parkLayer["positions"] = positions5; |
| | | |
| | | // const positions6 = this.generatePosition(10); |
| | | |
| | | // positions6.forEach((item, index) => { |
| | | // const label = new this.DC.Label(item, "123"); |
| | | // label.setStyle({ |
| | | // fillColor: this.DC.Color.PURPLE, |
| | | // outlineColor: this.DC.Color.WHITE, // 边框颜色 |
| | | // outlineWidth: 2, // 边框大小, |
| | | // font: "10px sans-serif", |
| | | // pixelOffset: { x: 0, y: -16 }, |
| | | // }); |
| | | // this.comeLayer.addOverlay(label); |
| | | |
| | | // const billboard = new this.DC.Billboard( |
| | | // item, |
| | | // "/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.comeLayer["positions"] = positions6; |
| | | let ourNum = that.leftNavData.length; |
| | | for (let n = 0; n < ourNum; n++) { |
| | | let ourD = this.leftNavData[n]; |
| | |
| | | name: |
| | | data[k].mechanismname || |
| | | data[k].roadname || |
| | | ourD.label == "监控" |
| | | ? "监控" |
| | | : "无显示名字", |
| | | (ourD.label == "监控" ? "监控" : "无显示名字"), |
| | | bgImg: data[k].tpurl, |
| | | video: data[k].videourl || "", |
| | | from: "labels", |
| | |
| | | .m-left-coutrol { |
| | | position: absolute; |
| | | left: -24px; |
| | | top: 77px; |
| | | top: 96px; |
| | | width: 25px; |
| | | height: 60px; |
| | | background-color: #fff; |
| | |
| | | <div class="m_p_h_center"> |
| | | <div> |
| | | <div v-if="mBigPopup.search" style="color: #fff"> |
| | | 查询结果{{ searchLabel ? "--" + searchLabel : "" }} |
| | | 查询结果{{ searchLabel ? " -- " + searchLabel : "" }} |
| | | </div> |
| | | <el-dropdown trigger="click" @command="choiceIt" v-else> |
| | | <span class="el-dropdown-link"> |
| | |
| | | <script> |
| | | import { getListarc } from "@/api/mobile/public/arc"; //头部下标签页数据 |
| | | import { mapGetters } from "vuex"; |
| | | //搜索 |
| | | import { getListSearch } from "@/api/mobile/search/index"; |
| | | export default { |
| | | computed: { |
| | | ...mapGetters(["mBigPopup", "popupOurOpenData"]), |
| | |
| | | // console.log("查询搜索结果", this.mBigPopup.value); |
| | | this.fullscreenLoading = false; |
| | | this.choiceMain = "搜索"; |
| | | this.getListSearchMethod(this.mBigPopup.value); |
| | | return; |
| | | } |
| | | this.choiceMain = this.popupOurOpenData.qurey; // 进入的主题:列:机构单位,校园建筑 |
| | |
| | | that.tabTable[+campus - 1].child = outList; |
| | | }); |
| | | }, |
| | | //搜索请求 |
| | | getListSearchMethod(name) { |
| | | let val = { |
| | | mechanismName: name, |
| | | }, |
| | | that = this; |
| | | getListSearch(val).then((res) => { |
| | | if (res.data.code != 200) { |
| | | return; |
| | | } |
| | | const data = res.data.data; |
| | | //正常获取全部数据 |
| | | let outList = []; |
| | | data.forEach((item) => { |
| | | let icon = item.list.tpurl.split(","); |
| | | let useData = { |
| | | name: item.list.mechanismname, |
| | | lntLat: [item.list.jd, item.list.wd], |
| | | alt: item.list.gd, |
| | | heading: item.list.heading, |
| | | pitch: item.list.pitch, |
| | | roll: item.list.roll, |
| | | bgImg: item.list.tpurl, |
| | | icon: icon, |
| | | icons: icon + item.list.mechanismname, //图片响应改变 |
| | | from: this.choiceMain, |
| | | QRImg: item.list.codeurl, |
| | | websiteUrl: item.list.websiteurl, |
| | | telePhone: item.list.telephone, |
| | | address: item.list.address, |
| | | introduce: item.list.introduce, |
| | | video: item.list.videourl, |
| | | buts: |
| | | that.mBigPopup.name == "校园建筑" || |
| | | that.mBigPopup.name == "文化风景" |
| | | ? ["定位", "实景", "图集"] |
| | | : ["定位"], |
| | | }; |
| | | outList.push(useData); |
| | | }); |
| | | that.fullscreenLoading = false; |
| | | that.onlyData = outList; |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | let queryData = this.query.query; |
| | | // console.log(queryData); |
| | | this.title = queryData.name; |
| | | if (queryData.bgImg) { |
| | | this.srcList = queryData.bgImg.split(","); |
| | | this.url = this.srcList[0]; |
| | | } |
| | | |
| | | if (queryData.seebut) { |
| | | this.seebut = queryData.seebut; |
| | | for (let k in this.seebut) { |
| | |
| | | name: "去这", |
| | | }, |
| | | ]; |
| | | } |
| | | if (queryData.bgImg) { |
| | | this.srcList = queryData.bgImg.split(","); |
| | | this.url = this.srcList[0]; |
| | | } else { |
| | | this.seebut = this.seebut.filter((res) => { |
| | | return res.name != "图集"; |
| | | }); |
| | | } |
| | | if (queryData.video) { |
| | | if (queryData.from == "labels") { |
| | |
| | | ); |
| | | } else if (val == "图集") { |
| | | let imgsDom = document.getElementById("mobileBigImgs"); |
| | | imgsDom.click(); |
| | | if (imgsDom) { |
| | | imgsDom.click(); |
| | | } |
| | | } else if (val == "视频") { |
| | | this.seebut[this.seebut.length - 1].name = "返回"; |
| | | this.video = this.query.query.video; |
| | |
| | | "iconHide", |
| | | "popupsDom", |
| | | "MobileWindowsHideFixed", |
| | | "dimension", |
| | | ]), |
| | | }, |
| | | watch: { |
| | |
| | | }); |
| | | that.$refs.mobileLeftNav.initialize(viewer); |
| | | that.$store.commit("MSET_VIEWER", viewer); |
| | | // window.mviewer = viewer; |
| | | // that.$store.commit("MSET_DC", DC); |
| | | const popup = viewer.popup; |
| | | |
| | | popup.hide(); |
| | | |
| | | const baselayer = DC.ImageryLayerFactory.createArcGisImageryLayer({ |
| | | url: "http://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer", |
| | | }); |
| | | // const baselayer = DC.ImageryLayerFactory.createArcGisImageryLayer({ |
| | | // url: "http://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer", |
| | | // }); |
| | | const baselayer = that.DC.ImageryLayerFactory.createImageryLayer( |
| | | that.DC.ImageryType.XYZ, |
| | | { |
| | | // url: 'https://webmap-tile.sf-express.com/MapTileService/rt?x={col}&y={row}&z={level}' |
| | | |
| | | url: "https://webmap-tile.sf-express.com/MapTileService/rt?fetchtype=static&x={x}&y={y}&z={z}&project=sfmap&pic_size=256&pic_type=png8&data_name=361100&data_format=merged-dat&data_type=normal", // 行政区划 |
| | | } |
| | | ); |
| | | viewer.addBaseLayer(baselayer, { |
| | | iconUrl: "examples/images/icon/img.png", |
| | | name: "影像", |
| | |
| | | if (!that.MobileWindowsHide) { |
| | | // that.$store.dispatch("closeMobileWindowsDom"); //关闭随地图弹窗 |
| | | } |
| | | // let height = Math.ceil(viewer.camera.positionCartographic.height); |
| | | // console.log(height); |
| | | }); |
| | | |
| | | //自带白模型↓ |
| | | viewer.on(that.DC.SceneEventType.CAMERA_CHANGED, (e) => { |
| | | //控制高度 |
| | | const height = Math.ceil(viewer.camera.positionCartographic.height); |
| | | let orientation = { |
| | | heading: that.DC.Namespace.Cesium.Math.toRadians(0), // 方向 |
| | | pitch: that.DC.Namespace.Cesium.Math.toRadians( |
| | | that.dimension == "2D" ? -90 : that.dimension == "2.5D" ? -45 : -45 |
| | | ), // 倾斜角度 |
| | | roll: 0, |
| | | }; |
| | | if (height < 300) { |
| | | viewer.camera.setView({ |
| | | destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians( |
| | | viewer.camera.positionCartographic.longitude, |
| | | viewer.camera.positionCartographic.latitude, |
| | | 300 |
| | | ), |
| | | orientation: orientation, |
| | | }); |
| | | } |
| | | if (height > 2000) { |
| | | viewer.camera.setView({ |
| | | destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians( |
| | | viewer.camera.positionCartographic.longitude, |
| | | viewer.camera.positionCartographic.latitude, |
| | | 2000 |
| | | ), |
| | | orientation: orientation, |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | // 地图点击事件 |
| | | viewer.on(DC.MouseEventType.CLICK, (e) => { |
| | | // console.log(e); |
| | | // 定制化窗体 |
| | | that.openPopupS( |
| | | e.position, |
| | | [e.wgs84SurfacePosition.lng, e.wgs84SurfacePosition.lat], |
| | | { |
| | | name: "地图点击", |
| | | address: [e.wgs84SurfacePosition.lng, e.wgs84SurfacePosition.lat], |
| | | introduce: [e.windowPosition.x, e.windowPosition.y], |
| | | from: "地图点击", |
| | | } |
| | | ); |
| | | }); |
| | | |
| | | //白模型↓ |
| | | // const layer = new DC.TilesetLayer("layer"); |
| | | // viewer.addLayer(layer); |
| | | // const tileset = new DC.Tileset( |
| | |
| | | // 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); |
| | | setTimeout((res) => { |
| | | viewer.flyTo(tileset); |
| | | }, 2500); |
| | | // 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); |
| | | //精细模型↑ |
| | | |
| | | // 2.5D贴图↓ |
| | | var provider = |
| | | new that.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({ |
| | | url: "http://www.tdtfz.com/OneMapServer/rest/services/fzsw2019/MapServer/WMTS/tile/1.0.0/fzsw2019/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}", |
| | | layer: "fzsw2019", |
| | | style: "default", |
| | | tileMatrixSetID: "default028mm", |
| | | format: "image/jpgpng", |
| | | tilingScheme: new that.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", |
| | | ], |
| | | }); |
| | | |
| | | viewer.imageryLayers.addImageryProvider(provider); |
| | | // 2.5D贴图↑ |
| | | let startPoint; |
| | | if (false) { |
| | | setTimeout((res) => { |
| | | //转圈 |
| | | that.$store.dispatch("mapFlyTo", { |
| | | lntLat: [111.25036579, 34.83767277, 11443175.85], |
| | | heading: 0, |
| | | pitch: -90, |
| | | roll: 0, |
| | | noOpen: true, |
| | | fn: function () { |
| | | // viewer.flyTo(tileset); |
| | | // viewer.flyTo(provider); |
| | | //飞入起始点 |
| | | // that.$store.dispatch("mapFlyTo", { |
| | | // lntLat: [115.87186406, 28.74449337, 1200], |
| | | // heading: 0, |
| | | // pitch: -45, |
| | | // roll: 0, |
| | | // noOpen: true, |
| | | // }); |
| | | startPoint = () => { |
| | | that.$store.dispatch("mapFlyTo", { |
| | | //飞入 |
| | | lntLat: [115.87988885, 28.72502592, 2100], |
| | | // lntLat: [115.87186406, 28.74449337, 1200], |
| | | // lntLat: [121.50492752204283, 31.21567802276832, 2530], |
| | | heading: 0, |
| | | pitch: -45, |
| | | roll: 0, |
| | | noOpen: true, |
| | | }); |
| | | }; |
| | | startPoint(); |
| | | }, |
| | | }); |
| | | // viewer.flyTo(tileset); |
| | | }, 2500); |
| | | } else { |
| | | startPoint = (val) => { |
| | | console.log(val); |
| | | // viewer.zoomToPosition( |
| | | // new DC.Position(115.86798885, 28.72502592, 2100, 0, -45) |
| | | // ); |
| | | viewer.camera.setView({ |
| | | // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州 |
| | | // fromDegrees()方法,将经纬度和高程转换为世界坐标 |
| | | destination: that.DC.Namespace.Cesium.Cartesian3.fromDegrees( |
| | | 116.390060025, |
| | | 27.95649473, |
| | | 2000.0 |
| | | ), |
| | | orientation: { |
| | | // 指向 |
| | | heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0), |
| | | // 视角 |
| | | pitch: that.DC.Namespace.Cesium.Math.toRadians( |
| | | val == "2D" ? -90 : val == "2.5D" ? -45 : -45 |
| | | ), |
| | | roll: 0.0, |
| | | }, |
| | | }); |
| | | }; |
| | | startPoint(that.dimension); |
| | | } |
| | | //传递默认位置 |
| | | that.$store.commit("MSET_MORENWEIZHI", startPoint); |
| | | // let position = Cesium.Cartesian3.fromDegrees(108, 25, 0); //中心点位置 |
| | | // let cameraLimit = new xt3d.CameraDominate.CameraLimit( |
| | | // viewer, |
| | | // position, |
| | | // { |
| | | // radius: 2000, |
| | | // debugExtent: true, |
| | | // } |
| | | // ); |
| | | |
| | | // const currentViewRect = viewer.camera.computeViewRectangle();//东南西北数据 |
| | | // console.log(currentViewRect, 78); |
| | | |
| | | //瀑布流↓ |
| | | const wallLayer = new that.DC.VectorLayer("wallLayer"); |
| | |
| | | const wall = new that.DC.Wall(arr); |
| | | wall.setStyle({ |
| | | material: new that.DC.WallTrailMaterialProperty({ |
| | | color: that.DC.Color.DEEPSKYBLUE, |
| | | color: that.DC.Namespace.Cesium.Color.fromBytes(0, 142, 255, 150), |
| | | // color: that.DC.Color.DEEPSKYBLUE, |
| | | speed: 4, |
| | | }), |
| | | }); |
| | |
| | | //地图渲染完成执行srore中MSET_CREADE |
| | | // that.$store.dispatch("MSET_CREADE"); |
| | | |
| | | tileset.on(DC.MouseEventType.CLICK, (e) => { |
| | | viewer.scene.globe.depthTestAgainstTerrain = false; |
| | | // console.log(e); |
| | | // 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.flyToPosition( |
| | | // new that.DC.Position(115.87186406, 28.74449337, 1800, 0, 45, 0) |
| | | // ); |
| | | |
| | | // // 定制化窗体 |
| | | // 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 = true; |
| | | viewer.locationBar.enable = false; |
| | | viewer.distanceLegend.enable = true; |
| | | viewer.distanceLegend.enable = false; |
| | | if (true) { |
| | | // viewer.scene.screenSpaceCameraController.enableZoom = false; //控制视角缩放 |
| | | viewer.scene.screenSpaceCameraController.enableTilt = false; //控制视角旋转 |
| | | // viewer.scene.screenSpaceCameraController.minimumZoomDistance = 200; //最小缩放 |
| | | // viewer.scene.screenSpaceCameraController.maximumZoomDistance = 1900; //最大缩放 |
| | | // 2D和哥伦布视图 |
| | | // 控制视角平移:scene.screenSpaceCameraController.enableTranslate = true; |
| | | } |
| | | } |
| | | |
| | | DC.ready(initViewer); |
| | |
| | | ccDataState: state => state.mobile.ccDataState, // 测试 |
| | | openmobilePanorama: state => state.mobile.openmobilePanorama, |
| | | MobileWindowsHideFixed: state => state.mobile.MobileWindowsHideFixed, // 固定窗口 |
| | | MobileWindowChangeDataFixed: state => state.mobile.MobileWindowChangeDataFixed // 固定窗口 |
| | | MobileWindowChangeDataFixed: state => state.mobile.MobileWindowChangeDataFixed, // 固定窗口 |
| | | startPointFn: state => state.mobile.startPointFn,// 默认起始点位置 |
| | | dimension: state => state.mobile.dimension,// 维度 |
| | | perspectiveControl: state => state.mobile.perspectiveControl,///视角控制:高度、角度 ()=>{} |
| | | } |
| | | |
| | | const navigation = { |
| | |
| | | checked: "/img/leftnav/way-checked.png", |
| | | layer: "pointLayer", |
| | | }, |
| | | //默认起始点函数 |
| | | startPointFn: '', |
| | | dimension: "2D",// 维度 |
| | | perspectiveControl: '',//视角控制:高度、角度 ()=>{} |
| | | }, |
| | | mutations: { |
| | | MSET_VIEWER(state, viewer) { |
| | |
| | | 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.normal; |
| | | state[state.pointLayerData.layer].show = false; |
| | | } |
| | | }, |
| | | //切换2D和2.5D |
| | | MSET_DIMENSION(state, data) { |
| | | state.dimension = data; |
| | | }, |
| | | //切换控制 |
| | | MSET_PERSPECTIVECONTROL(state, data) { |
| | | state.perspectiveControl = data; |
| | | } |
| | | }, |
| | | actions: { |
| | |
| | | setMobileWindows({ state, commit, dispatch }, data) {//打开随地图移动窗口 |
| | | // 关闭前一个弹窗? |
| | | dispatch("closeMobileWindowsDom"); |
| | | let clnt = data.from == "PopupOurOnce" ? +data.lntLat[0] : +data.lntLat[0], |
| | | clat = data.from == "PopupOurOnce" ? +data.lntLat[1] - 0.00008 : +data.lntLat[1] - 0.00048, |
| | | calt = data.from == "PopupOurOnce" ? 0 : 90.648862227; |
| | | let clas, Flys; |
| | | |
| | | if (state.dimension == "2D") { |
| | | Flys = [ |
| | | +data.lntLat[0] + 0.01197, |
| | | +data.lntLat[1] - 0.0001, |
| | | 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" ? 0 : 0, |
| | | ] |
| | | |
| | | } else if (state.dimension == "2.5D") { |
| | | Flys = [ |
| | | +data.lntLat[0] + 0.01197, |
| | | +data.lntLat[1] - 0.0022, |
| | | 330, |
| | | ] |
| | | clas = [ |
| | | data.from == "PopupOurOnce" ? +data.lntLat[0] : +data.lntLat[0], |
| | | data.from == "PopupOurOnce" ? +data.lntLat[1] - 0.00108 : +data.lntLat[1] - 0.00048, |
| | | data.from == "PopupOurOnce" ? 0 : 90.648862227, |
| | | ] |
| | | } |
| | | |
| | | |
| | | 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 |
| | | // clnt, clat, calt |
| | | ...clas |
| | | ); |
| | | data.position = ellipsoid.cartographicToCartesian(cartographic); |
| | | } |
| | |
| | | // h:330 |
| | | // lnt: + 0.01197 x轴 |
| | | // Lat: - 0.0021 y轴 |
| | | let Flys = [ |
| | | data.from == "PopupOurOnce" ? +data.lntLat[0] + 0.01197 : +data.lntLat[0] + 0.01197, |
| | | data.from == "PopupOurOnce" ? +data.lntLat[1] - 0.0021 : +data.lntLat[1] - 0.0021, |
| | | data.from == "PopupOurOnce" ? 330 : 330, |
| | | ] |
| | | // 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, |
| | | // ] |
| | | |
| | | |
| | | let Position = new global.DC.Position(//转坐标 |
| | | // +data.lntLat[0] + 0.01197, |
| | | // +data.lntLat[1] - 0.0021, |
| | | // 330, |
| | | ...Flys, |
| | | 0, |
| | | -45 |
| | | state.dimension == "2D" ? -90 : state.dimension == "2.5D" ? -45 : -45 |
| | | ); |
| | | dispatch("mapFlyTo", {//飞入 |
| | | lntLat: [Position.lng, Position.lat, Position.alt], |
| | |
| | | }, |
| | | duration: 1.6, //定位的时间间隔 |
| | | complete: () => {//完成后的回调 |
| | | if (data.fn) {//自定义回调 |
| | | setTimeout(() => { |
| | | data.fn() |
| | | }, 500); |
| | | } |
| | | if (!data.noOpen) { |
| | | setTimeout(() => { |
| | | // dispatch("MSET_POINTDATA", data.lntLat);//传入标记点 |
| | |
| | | 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) { |
| | | commit("MSET_DIMENSION", val); |
| | | } |
| | | } |
| | | } |
| | | |