您当前的位置:首页 > 网站建设 > javascript
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax |

echars 3D地图为区域自定义颜色的解决方法

51自学网 2022-05-02 21:33:30
  javascript

问题

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

延伸

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

  • 采用的是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中就可以了

总结

到此这篇关于echars 3D地图为区域自定义颜色的文章就介绍到这了,更多相关echars 3D地图自定义颜色内容请搜索wanshiok.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持wanshiok.com!


手摸手教你实现Vue3 Reactivity
JavaScript--在Vue中使用插槽:slot
51自学网,即我要自学网,自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1