<!-- * @Author: 苹果园dog * @Date: 2021-08-23 10:38:27 * @LastEditTime: 2021-08-24 19:02:48 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath: --> <template> <div class="main"> <div id="cesiumContainer"></div> <div class="controlRegion"> <button @click="btnStart">开始</button> <button @click="btnClear">清除</button> <button @click="btnStop">关闭</button> </div> <div id="profileChart"></div> </div> </template> <script> //这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等) //例如:import 《组件名称》 from ‘《组件路径》‘; import cesiumCommon from ‘../../commonUtil/cesiumCommon.js‘ import CesiumProfile from ‘./CesiumProfile.js‘ export default { //import引入的组件需要注入到对象中才能使用 components: {}, data() { //这里存放数据 return { cesiumProfile: null } }, //方法集合 methods: { btnStart() {//开始 this.cesiumProfile.startDraw((positions) => { this.cesiumProfile.getChartData(positions, (newPositions) => { this.cesiumProfile.createProfileChart(newPositions) }) }) }, btnStop() { this.cesiumProfile.close(); }, btnClear() { this.cesiumProfile.clear(); } }, //生命周期 - 创建完成(可以访问当前this实例) created() {}, //生命周期 - 挂载完成(可以访问DOM元素) mounted() { cesiumCommon.init3D() let t = new CesiumProfile(viewer, { toolTip: ‘profiletooltip‘, entityNames: [‘profileDrawEntities‘], chartID: ‘profileChart‘ }) this.cesiumProfile = t }, beforeCreate() {}, //生命周期 - 创建之前 beforeMount() {}, //生命周期 - 挂载之前 beforeUpdate() {}, //生命周期 - 更新之前 updated() {}, //生命周期 - 更新之后 beforeDestroy() {}, //生命周期 - 销毁之前 destroyed() {}, //生命周期 - 销毁完成 activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发 //监听属性 类似于data概念 computed: {}, //监控data中的数据变化 watch: {} } </script> <style lang=‘scss‘ scoped> //@import url(); 引入公共css类 #cesiumContainer, .main { width: 100%; height: 100%; } .main { position: relative; } #profileChart { position: absolute; width: 500px; height: 500px; bottom: 50px; left: 200px; } .controlRegion { position: absolute; top: 20px; left: 20px; background: white; } </style>
CesiumProfile.prototype.createProfileChart = function (profileData) { if (!this.lineChart) { this.lineChart = echarts.init(document.getElementById(this.chartID)); } var lineoption = { title: { text: ‘剖面分析‘ }, tooltip: { trigger: ‘axis‘ }, xAxis: [ { type: ‘category‘, } ], yAxis: [ { type: ‘value‘ } ], series: [ { name: ‘线‘, type: ‘line‘, data: profileData } ] }; this.lineChart.setOption(lineoption); document.getElementById(this.chartID).style.backgroundColor = ‘rgba(255, 255, 255, 1)‘; document.getElementById(this.chartID).style.display = "block"; $(window).resize(this.lineChart.resize); }