echars 3D地图为区域自定义颜色

简介: echars 3D地图为区域自定义颜色

echars 3D地图为区域自定义颜色

问题

根据项目需求,我们要将下面省级地图中的个别市进行高亮(不同颜色)展示

延伸

首先跟大家介绍这个地图的展示方式:

  • 采用的是Vue框架中运用echarts
  • 地图采用的是geo3D和scatter3D

当然他的实现很简单

  • 首先我们要初始化echarts
let echartsMap = this.$echarts.init(this.$refs.echartsMap);
  • 注册地图
this.$echarts.registerMap('河南', dataGeoLocation);
//后面的dataGeoLocation是我们下载下载的地图json文件然后引入到当前
//组件中进行使用的,前面的河南则是我们要注册的地图
  • 设置option对象
    这里面的配置是根据自己的项目需求而来的 自己可以看文档都有详细的介绍
 this.echartsDataMap = {
              visualMap: {
                min: 0,
                max: 500,
                show: false,
                inRange: {
                  color: ['#eac736', '#6EAFE3'].reverse()
                },
              },
              globeRadius: 100,
              globeOuterRadius: 100,
              geo3D: {
                map: mapName,
                viewControl: {
                  center: [0, 0, 0],
                  alpha: 100,//上下旋转角度
                  beta: 10,//左右旋转角度
                  animation: true,//是否动画显示
                  animationDurationUpdate: 1000,//动画时间
                  distance: 130,//视角到主题距离
                  minBeta: -9999,//最小(左)旋转度数
                  maxBeta: 9999,//最多(右)旋转角度
                  autoRotate: false,
                  autoRotateDirection: 'cw',
                  autoRotateSpeed: 10,
                },
                splitArea:{
                  areaStyle:{
                    color:'red',
                  }
                },
                light: {
                  main: {
                    intensity: 1.2,
                    // color: 'transparent',
                    color: '#0D3867',
                    shadowQuality: 'ultra',
                    shadow: true,
                    alpha: 150,
                    beta: 200
                  },
                  ambient: {
                    intensity: 1,//环境光强度
                  },
                  ambientCubemap: {
                    diffuseIntensity: 1,
                    texture: ''
                  }
                },
                groundPlane: {
                  show: false
                },
                postEffect: {
                  enable: false
                },
                itemStyle: {
                  color: '#175096',
                  borderColor: 'rgb(62,215,213)',
                  opacity: 0.8,//透明度
                  borderWidth: 1
                },
                label: {
                  show: false
                },
                emphasis: {
                  label: {
                    show: false
                  },
                  itemStyle: {
                  }
                },
                silent: false, // 不响应和触发鼠标事件
              },
              series: [
                {
                  type: 'scatter3D',
                  coordinateSystem: 'geo3D',
                  data: this.areaName
                  symbol: 'circle',
                  symbolSize: 0,
                  silent: false, // 不响应和触发鼠标事件
                  itemStyle: {
                    borderColor: '#fff',
                    borderWidth: 1
                  },
                  label: {
                    distance: 30,
                    show: true,
                    formatter: '{b}',
                    position: 'bottom',
                    bottom: '100',
                    textStyle: {
                      color: '#fff',
                      marginTop: 40,
                      fontSize: 16,
                      // fontWeight:'bold',
                      backgroundColor: 'transparent',
                    }
                  }
                },
                {
                  type: 'scatter3D',
                  coordinateSystem: 'geo3D',
                  data: pinArr,
                  color: '#6EAFE3',
                  symbol: 'pin',
                  symbolSize: 56,
                  symbolOffset: ['100%','50%','0'],
                  silent: false, // 不响应和触发鼠标事件
                  itemStyle: {
                    textAlign: 'center',
                    borderColor: '#6EAFE3',
                    backgroundColor: '#6EAFE3',
                    borderWidth: 0
                  },
                  zlevel: -10,
                  label: {
                    show: true,
                    distance: -45,
                    // left:-10,
                    position: 'bottom',
                    formatter: (data) => {
                      return data.value[3] + '     ';
                    },
                    textStyle: {
                      color: '#333',
                      backgroundColor: 'transparent'
                    }
                  }
                },
              ]
            };
  • 将option实例到我们的echarts上
echartsMap.setOption(this.echartsDataMap);


解决问题

回头我们来看文章开头的问题,在百度上找到了很多方式,经过尝试好像没有什么效果,其实能够解决我也是根据网上提供的办法进行改进后就实现了

这是我在众多方式中找到的比较靠谱的一种方式,这里他说的是再geo中去添加regions即可,其实是这样的 但是我添加后没有效果,原因就是我的是geo3D而他的是geo,但是问题不大,经过我在三的尝试最终发现原来他们两个中仅仅是写法不一样

regions: [      
                {
                  name: '郑州市', /
                  itemStyle: {
                      color: 'green'
                  }
                },{
                  name: '南阳市', 
                  itemStyle: {
                      color: 'green'
                  }
                },{
                  name: '商丘市',
                  itemStyle: {
                      color: 'green'
                  }
                }]

我们只需要更正一下color的设置形式然后添加到我们的geo3D中就可以了

你学会了吗



相关文章
|
定位技术
百度地图标注maker图标按照分类显示不同的样式
百度地图标注maker图标按照分类显示不同的样式
117 0
|
5月前
|
JavaScript
vue 指定区域可拖拽的限定拖拽区域的div(如仅弹窗标题可拖拽的弹窗)
vue 指定区域可拖拽的限定拖拽区域的div(如仅弹窗标题可拖拽的弹窗)
236 0
|
7月前
echars 设置文字倾斜 图表根据鼠标滑轮自动改变x轴数据
echars 设置文字倾斜 图表根据鼠标滑轮自动改变x轴数据
106 1
|
7月前
|
数据可视化 前端开发 定位技术
echarts 关于折线统计图常用的属性设置--超详细(附加源码)
echarts 关于折线统计图常用的属性设置--超详细(附加源码)
158 0
|
7月前
|
JavaScript 前端开发
JS单选框默认选中样式修改,为白色背景中心有黑色小圆点的样式
JS单选框默认选中样式修改,为白色背景中心有黑色小圆点的样式
57 0
|
7月前
【sgDragMove】自定义组件:自定义拖拽组件,仅支持拖拽、设置吸附屏幕边界距离。
【sgDragMove】自定义组件:自定义拖拽组件,仅支持拖拽、设置吸附屏幕边界距离。
|
7月前
|
测试技术
【sgTileImage】自定义组件:瓦片图拖拽局部加载、实现以鼠标为中心缩放
【sgTileImage】自定义组件:瓦片图拖拽局部加载、实现以鼠标为中心缩放
Echarts去掉叠堆折线区域图的区域颜色
Echarts去掉叠堆折线区域图的区域颜色
135 0
echarts仪表盘更换样式全圆形换成半圆
echarts仪表盘更换样式全圆形换成半圆
142 0