发布于2021-10-24 14:01 阅读(1264) 评论(0) 点赞(1) 收藏(0)
1.需求3d切面地图,颜色渐变,选中阴影,可切换地市,点击时展示地理数据,由于echarts 3d地图无法渐变,地图比例大小效果不好改成理想效果,所以通过伪3d方式实现。最终实现如下图:
2.代码
- <template>
- <div ref="myEchart" class="map-echart">
- </div>
- </template>
-
- <script>
- import echarts from 'echarts'
- export default {
- name: "map",
- data() {
- return{
- myChartMap: '',
- }
- },
- mounted() {
- const uploadedDataURL = require(`@/assets/json/map/provice/shandong.json`)
- echarts.registerMap('shandong', uploadedDataURL)
- this.myChartMap = echarts.init(this.$refs.myEchart)
- this.myChartMap.on('click', params=>{
- this.powerClick(params, 'echartClick')
- })
- this.initEcharts()
- }
- methods: {
- //画图
- initEcharts() {
- this.$nextTick(() => {
- const seriesData = [{
- name: '济南',
- value: [117.200, 36.791]
- },{
- name: '青岛',
- value: [120.253, 36.529]
- },{
- name: '莱芜',
- value: [117.676, 36.33]
- },{
- name: '潍坊',
- value: [119.09, 36.712]
- },{
- name: '枣庄',
- value: [117.46, 34.96]
- },{
- name: '东营',
- value: [118.66, 37.59]
- },{
- name: '德州',
- value: [116.619, 37.112]
- },{
- name: '烟台',
- value: [120.79, 37.101]
- },{
- name: '临沂',
- value: [118.286, 35.167]
- },{
- name: '日照',
- value: [119.150, 35.436]
- },{
- name: '济宁',
- value: [116.505, 35.385]
- },{
- name: '聊城',
- value: [115.878, 36.321]
- },{
- name: '淄博',
- value: [118.007648, 36.674939]
- },{
- name: '泰安',
- value: [116.800, 36.015]
- },{
- name: '威海',
- value: [122.100, 37.255691]
- },{
- name: '滨州',
- value: [117.850974, 37.693542]
- },{
- name: '菏泽',
- value: [115.700381, 35.220]
- }]
- const options = {
- // 悬浮窗
- tooltip: {
- trigger: 'item',
- formatter: function(point, params, dom, rect, size) {
- //这里可以自定义浮窗的dom节点及样式
- return `${params.name}: ${params.value || 0}`
- }
- },
- geo: [{
- //第一层需要操作点击展示的地图
- show: true,
- map: 'shandong',
- z: 1,//层级,zLevel优先级 > z
- aspectScale: 1,
- zoom: 1.15,//控制整体视图缩放
- roam: false,//控制是否可拖动
- label: {//初始标签样式
- show: true,
- color: '#fff',
- position: "inside",
- distance: 0,
- fontSize: 12
- },
- // 所有地图的区域颜色
- itemStyle: {
- normal: {
- color: {
- type: 'linear',
- x: 0,
- x2: 0,
- y: 0,
- y2: 1,
- colorStops: [
- { offset: 0, color: '#0843a9' },
- { offset: 0.9, color: '#001c80' }
- ]
- },
- borderWidth: 1,//分界线width
- borderColor: '#55bef2'
- }
- },
- emphasis: {//鼠标移入显示效果
- label:{
- show: true,//是否显示高亮
- textStyle: {
- color: '#fff',
- fontSize: 15 //高亮放大字体
- }
- },
- itemStyle: {
- color: {
- type: 'linear',
- x: 0,
- x2: 0,
- y: 0,
- y2: 1,
- colorStops: [
- { offset: 0, color: '#12F5D9' },
- { offset: 0.49, color: '#08BCEE' },
- { offset: 0.5, color: '#08BCEE' },
- { offset: 1, color: '#0194FD' }
- ]
- },
- shadowColor: 'rgba(255,248,74,0.8)',//阴影颜色
- shadowBlur: 3,//阴影大小
- shadowOffsetX: 10,//沿x轴宽度
- shadowOffsetY: 10,//沿y轴宽度
- borderCap: 'square'
- }
- },
- // 针对点击或特别区域做一些特别的样式
- // regions: [{
- // name: '山东省',
- // itemStyle: {
- // areaColor: 'yellow',
- // color: 'black',
- // borderColor: 'pink'
- // }
- // }]
- },{
- show: true,
- map: 'shandong',
- z: 0,
- top: 75,
- left: 100,
- aspectScale: 1,
- zoom: 1.15,
- roam: false,
- label: {
- normal: {
- show: false
- },
- emphasis: {
- show: false
- }
- },
- itemStyle: {
- normal: {
- areaColor: 'rgba(5, 32, 136, 1)',
- borderColor: 'transparent',
- borderWidth: 5
- },
- emphasis: {
- areaColor: 'rgba(5, 32, 136, 1)'
- }
- }
- }],
- // 数据
- series: [
- {
- type: 'scatter',
- itemStyle: {
- color: '#efe244',
- opacity: 1,
- shadowColor: 'rgba(255, 248, 74, 0.8)',
- shadowBlur: 10,
- shadowOffsetX: 1,
- shadowOffsetY: 1
- },
- symbol: 'diamond',
- coordinateSystem: 'geo',
- zlevel: 100,
- geoIndex: 0,
- top: 10,
- symbolSize: 10,
- data: seriesData,
- }
- ]
- }
- this.myChartMap.setOption(options)
- })
- },
- powerClick(params, fromEven){
- //...其他判断逻辑
-
- //点击时地图上色
- //tip:其他地方如果需要清除选中效果,需要置空regions
- //this.myChartMap.setOption({geo: {regions: []}})
- this.myChartMap.setOption({
- geo: {
- regions: [
- {
- name: params.name,
- value: 0,
- selected: true,
- itemStyle: {
- color: {
- type: 'linear',
- x: 0,
- x2: 0,
- y: 0,
- y2: 1,
- colorStops: [
- { offset: 0, color: '#12F5D9' },
- { offset: 0.49, color: '#08BCEE' },
- { offset: 0.5, color: '#08BCEE' },
- { offset: 1, color: '#0194FD' }
- ]
- },
- opacity: 1,
- borderWidth: 0,
- shadowColor: 'rgba(255,248,74,0.8)',//阴影颜色
- shadowBlur: 3,//阴影大小
- shadowOffsetX: 10,//沿x轴宽度
- shadowOffsetY: 10,//沿y轴宽度
- },
- label: {
- color: '#fff',
- fontSize: 15,
- shadowColor: 'rgba(255, 248, 74, 0.8)',
- shadowBlur: 10,
- shadowOffsetX: 1,
- shadowOffsetY: 1
- }
- }
- ]
- }
- })
- }
- }
-
- }
- </script>
-
- <style>
- .map-echart {
- height: 600px;
- width: 900px;
- }
- </style>
3.地图json数据下载地址:
原文链接:https://blog.csdn.net/q_qman/article/details/120882259
作者:强哥你们辛苦了
链接:http://www.qianduanheidong.com/blog/article/211062/0acbb244c5dd0bbdcd7d/
来源:前端黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 前端黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-3
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!