react使用echart绘制地图的案例

 更新时间:2023年01月11日 09:39:04   作者:致爱丽丝  
这篇文章主要介绍了react使用echart绘制地图,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一:导入静态文件

import { useEffect, useRef } from 'react'
import * as echarts from 'echarts'
import { DownLoadPath } from "./data-overview/type"
import { ECHARTS_THEME } from './assets/static'
import myChinaMap from '/assets/static/china_new.json'

二:初始化配置

函数式组件,接受需要导入的数据

//解构props. resourceList:资源列表 
function myEchart({resourceList}){
   const divRef = useRef()    // 获取组件dom-ref
  // 防御性编程 如果resourceList为空则直接终止
  if(!Array.isArray(resourceList)  || (Array.isArray(resourceList) && resourceList.length<1  )) return 
   useeffect(()=>{
    // 防御性编程,divRef.current:绑定的dom元素名,比如{current:div},如果不存在,则程序到此终止。
    if (!divRef.current) return
    // 有时候传入的数据对象key名与echart要求的可能不同,因而,需要基于传入数据重新配置内部对象
    const myCustomizeResourceList = []
    resourceList.foreach((item,index)=>{
      //echart要求格式为{name:xxx,value:xxx}
      myCustomizeResourceList.push({
          name:item.xx,
          value:item.yy
      })
    })
    //数据装填完毕后,开始注册本地静态地图
   echarts.registerMap('',myChinaMap ) //参数1:地图名 本项目中不需要
  //注册完毕后,创建echart实例,并获取dom实例,并初始化echart图表   
  // getInstanceByDom(echartDOM容器),
 //  init(echartDOM容器,主题)
 const myChart = echarts.getInstanceByDom(divRef.current) ?? echarts.init(divRef.current, ECHARTS_THEME)
 

const option = {
/****
篇幅太长,第三步将着重讲解options配置
***/  
}
myChart.setOption(option)
//监听resize方法,一但缩放即重新设置echart宽高, 这里推荐使用lodash的节流函数包裹以节省性能
window.onresize = () => {
      myChart.resize()
    }
},[resourceList])    
//监听resourceList,如果有变化,随时setOption
return  <div ref={divRef} style={{ height: "440px" }} />
}

三:options各个配置项

const option = {
    backgroundColor: "#fff", //背景色
    //tooltip :配置鼠标经过图表区域时显示的小弹窗的文字   //item:myCustomizeResourceList的内部子项
      tooltip: {
        //提示框里的文字,参数item是data里的每一项
        formatter: function (item) {
          return `${item.name}:${item?.data?.value} `
        }
      },
// 工具集 
      toolbox:{
        feature:{
          saveAsImage:{
            
          }
        }
      },
// 缩放配置
      geo:{
         roam: true, //是否允许鼠标缩放 
        zoom: 1.2,
      }
左下程度表
      // 视觉映射 : 连续型
      visualMap: {
        // type: 'continuous',
        calculable: false, // 是否显示手柄
        // align: 'bottom',
        min: 0,
        max: 10,
        left: '15%',
        top: '50%',
        showLabel: true,
        // text: ['High', 'Low'], //显示两边文字
        pieces: [
          //各个程度的颜色
          { min: 0, max: 9, color: "#e7f3ff" },
          { min: 10, max: 19, color: "#ddefff" },
          { min: 20, max: 49, color: "#aed8ff" },
          { min: 50, max: 99, color: "#97cdff" },
          { min: 100, max: 199, color: "#69b7ff" },
          { min: 100, max: 199, color: "#69b7ff" },
          { min: 200, max: 500, color: "#3aa0ff" },
          { min: 500, color: "#1890ff" },
        ]
      },
// 将基于组件prop的数据装配到这里作为展示数据
      series: [
        {
          name: '录取人数',
          type: 'map',
          geoIndex: 0,  //防止出现地图重叠,赋值为0标识只允许出现一张地图
          data:myCustomizeResourceList,
        },
      ],
}

注释有点多,但是可能更有帮助

到此这篇关于react使用echart绘制地图的文章就介绍到这了,更多相关react使用echart绘制地图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 浅析history 和 react-router 的实现原理

    浅析history 和 react-router 的实现原理

    react-router 版本更新非常快,但是它的底层实现原理确是万变不离其中,在本文中会从前端路由出发到 react-router 原理总结与分享,本文对history 和 react-router实现原理讲解的非常详细,需要的朋友跟随小编一起看看吧
    2023-08-08
  • 详解使用WebPack搭建React开发环境

    详解使用WebPack搭建React开发环境

    这篇文章主要介绍了详解使用WebPack搭建React开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • webpack打包react项目的实现方法

    webpack打包react项目的实现方法

    这篇文章主要介绍了webpack打包react项目的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • ReactJs设置css样式的方法

    ReactJs设置css样式的方法

    本篇文章主要介绍了ReactJs设置css样式的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • 如何使用Redux Toolkit简化Redux

    如何使用Redux Toolkit简化Redux

    redux-toolkit是目前redux官方推荐的编写redux逻辑的方法,针对redux的创建store繁琐、样板代码太多、依赖外部库等问题进行了优化,官方总结了四个特点是简易的/有想法的/强劲的/高效的,总结来看,就是更加的方便简单了
    2022-12-12
  • 关于react 父子组件的执行顺序

    关于react 父子组件的执行顺序

    这篇文章主要介绍了关于react 父子组件的执行顺序,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • React useMemo与useCallabck有什么区别

    React useMemo与useCallabck有什么区别

    useCallback和useMemo是一样的东西,只是入参有所不同,useCallback缓存的是回调函数,如果依赖项没有更新,就会使用缓存的回调函数;useMemo缓存的是回调函数的return,如果依赖项没有更新,就会使用缓存的return
    2022-12-12
  • React实现动态轮播图的使用示例

    React实现动态轮播图的使用示例

    轮播组件是常见的一种方式,用来展示图像、信息或者是广告,本文就来介绍一下React实现动态轮播图的使用示例,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • React和Vue的props验证示例详解

    React和Vue的props验证示例详解

    这篇文章主要介绍了React和Vue的props验证,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • react实现Radio组件的示例代码

    react实现Radio组件的示例代码

    这篇文章主要介绍了react实现Radio组件的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04

最新评论