| | |
| | | <script> |
| | | import * as echarts from 'echarts'; |
| | | import 'echarts-gl'; |
| | | import mapData from '@/assets/map/dujiangyan.json'; |
| | | echarts.registerMap('dujiangyan', mapData); |
| | | import mapData from '@/assets/map/zigong.json'; |
| | | echarts.registerMap('zigong', mapData); |
| | | console.log(mapData); |
| | | let mapChart = null; |
| | | let tempName = ''; |
| | | let observer = null; |
| | | const mapConfig = { |
| | | series: [{ |
| | | map: "dujiangyan", //注册地图的名字 |
| | | map: "zigong", //注册地图的名字 |
| | | type: "map3D", |
| | | bottom: 0, |
| | | left: 0, |
| | |
| | | itemStyle: { |
| | | color: "#4189f2", // 背景 |
| | | opacity: 1, //透明度 |
| | | borderWidth: 1.5, // 边框宽度 |
| | | borderWidth: 1, // 边框宽度 |
| | | borderColor: "#fff", // 边框颜色 |
| | | fontSize: 16, // |
| | | fontSize: 18, // |
| | | }, |
| | | |
| | | // 标签 |
| | |
| | | }, |
| | | // 控制器 |
| | | viewControl: { |
| | | beta: 82, |
| | | beta: -30, |
| | | alpha: 90, |
| | | distance: 180, |
| | | distance: 100, |
| | | maxBeta: 180 |
| | | }, |
| | | // 鼠标移入时样式 |
| | |
| | | name: 'DataMap', |
| | | data() { |
| | | return { |
| | | |
| | | |
| | | } |
| | | }, |
| | | components: { |
| | |
| | | mapConfig.series[0].data.forEach(item => { |
| | | item.itemStyle.color = '#4189f2'; |
| | | }); |
| | | }, |
| | | // 监听变化 |
| | | observe() { |
| | | if (!observer) { |
| | | observer = new ResizeObserver(entries => { |
| | | this.handleResize(); |
| | | }) |
| | | } |
| | | observer.observe(this.$refs.map); |
| | | }, |
| | | // 窗口变换 |
| | | handleResize() { |
| | | if (mapChart) { |
| | | mapChart.resize(); |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | |
| | | tempName = params.name; |
| | | this.filterData(params.name); |
| | | } |
| | | }) |
| | | } |
| | | }); |
| | | this.observe(); |
| | | }, |
| | | beforeDestroy() { |
| | | if (observer) { |
| | | mapChart.dispose(); |
| | | observer.unobserve(this.$refs.map); |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | | |