首页 前端知识 echars根据json数据画地图(省市区),并加入高亮点

echars根据json数据画地图(省市区),并加入高亮点

2024-05-27 10:05:51 前端知识 前端哥 161 395 我要收藏

 总体的代码:

      data(){
return
{
            shTempData:[{ name: '', value: [106.087780, 33.768826, 90] },
      { name: '', value: [106.175370, 33.871970, 120] },
      { name: '', value: [105.958710, 33.815350, 142] },
      { name: '', value: [106.056020, 33.653740, 120] },
      { name: '', value: [106.043910, 33.804150, 142] },
      { name: '', value: [105.947320, 34.095380, 123] },
    ]
}
}

SetHx(){
        
      const huixianJson = require('./huixian.json');
      var myChart = echarts.init(this.$refs["sctterMap"]);

      echarts.registerMap('huixian', huixianJson, {}) // 这个是关键,
      // console.log(JSON)
      let option = {
        geo: {
          map: 'huixian', // js 地图包要和echarts.registerMap()里面的名字保持一致
          type: 'map', // 地图
          // mapType: '阜阳市', // 自定义地区要和echarts.registerMap()里面的名字保持一致
          coordinateSystem: 'geo',
          roam: false,
          zoom: 1,
          zlevel: 2,
          // data: this.shTempData, // 圆点进度纬度
          label: { // 显示地区名
            normal: {
              show: true,
              // 提示内容 里面渲染的是data里面的数据
              formatter: params => {
                return params.name
              },
              position: 'top', // 提示方向
              color: '#071568',
              textStyle: {
                color: "#071568",
                fontSize: 0,
              },
            },
            emphasis: {
              show: true,// 点
              textStyle: {
                color: "#071568",
                fontSize: 0,
              },
            }
          },
          itemStyle: { // 颜色配置
            normal: {
              color: '#FED52F', // 圆球拨动的颜色
              borderColor: "#0e46b7",
              shadowColor: "#0e46b7",
              // 地区颜色
              areaColor: "#071568",
              borderWidth: 1, //设置外层边框
              textStyle: {
                color: "#071568",
                fontSize: 0,
              },
            },
            emphasis: {
              shadowOffsetX: 0,
              shadowOffsetY: 1,
              shadowBlur: 10,
              borderWidth: 1,
              //鼠标选择区域颜色
              areaColor: "#071568",
              textStyle: {
                color: "#071568",
                fontSize: 0,
              },
            }
            // areaColor: '#021642'
          },
          nameMap: {

          }
        },
        title: {// 
          // text:
          x: 'center',
          roam: false
        },

        series: [
          {
            name: ' ',
            type: 'effectScatter', // 涟漪动画
            mapType: 'hx', // 自定义扩展图表类型
            coordinateSystem: 'geo',
            roam: false,
            zoom: 1,
            zlevel: 2,
            symbol: 'circle', // 标记的图形。
            symbolSize: 15, // 标记的大小。
            rippleEffect: {
              period: 4, // 动画速度,值越小,动画越快
              brushType: 'stroke' // 波纹的绘制方式
            },
            label: {
              normal: {
                show: true,
                // 提示内容
                formatter: params => {
                  return params.name
                },
                position: 'top', // 提示方向
                color: '#fff'
              },
              emphasis: {
                show: true // 点
              }
            },
            itemStyle: {
              normal: {
                color: '#FED52F', // 圆球拨动的颜色
                borderColor: 'rgba(147, 235, 248, 1)',
                borderWidth: 0.5,
                areaColor: '#021642'
              },
              emphasis: {
                areaColor: 'orangered', // 滑过高亮颜色
                borderColor: '#111'
              }
              // areaColor: '#021642'
            },
            data: this.shTempData, //  在 type为'effectScatter'时就是圆点进度纬度
          }
        ]
      }
      myChart.setOption(option)
      },

1:DataV.GeoAtlas地理小工具系列  从该地址上找到你要画的省,市,县

2:可以使用调接口的方式, 也可以使用 直接获取接口内数据的方式

https://geo.datav.aliyun.com/areas_v3/bound/100000_full.json

3:将接口内获取到的数据放入注册地图中, 我用的是 静态文件引入,因为该项目属于本地化部署

      const huixianJson = require('./huixian.json');

 echarts.registerMap('huixian', huixianJson, {}) 

4:加上高亮点,新写一个series

 type: 'effectScatter', // 涟漪动画

  data: this.shTempData, //  在 type为'effectScatter'时就是圆点进度纬度

如果是根据后端接口获取数据 ,重新加载一下就好了

转载请注明出处或者链接地址:https://www.qianduange.cn//article/9740.html
标签
评论
发布的文章
大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!