react使用echart繪制地圖的案例
一:導(dǎo)入靜態(tài)文件
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'二:初始化配置
函數(shù)式組件,接受需要導(dǎo)入的數(shù)據(jù)
//解構(gòu)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
// 有時候傳入的數(shù)據(jù)對象key名與echart要求的可能不同,因而,需要基于傳入數(shù)據(jù)重新配置內(nèi)部對象
const myCustomizeResourceList = []
resourceList.foreach((item,index)=>{
//echart要求格式為{name:xxx,value:xxx}
myCustomizeResourceList.push({
name:item.xx,
value:item.yy
})
})
//數(shù)據(jù)裝填完畢后,開始注冊本地靜態(tài)地圖
echarts.registerMap('',myChinaMap ) //參數(shù)1:地圖名 本項(xiàng)目中不需要
//注冊完畢后,創(chuàng)建echart實(shí)例,并獲取dom實(shí)例,并初始化echart圖表
// getInstanceByDom(echartDOM容器),
// init(echartDOM容器,主題)
const myChart = echarts.getInstanceByDom(divRef.current) ?? echarts.init(divRef.current, ECHARTS_THEME)
const option = {
/****
篇幅太長,第三步將著重講解options配置
***/
}
myChart.setOption(option)
//監(jiān)聽resize方法,一但縮放即重新設(shè)置echart寬高, 這里推薦使用lodash的節(jié)流函數(shù)包裹以節(jié)省性能
window.onresize = () => {
myChart.resize()
}
},[resourceList])
//監(jiān)聽resourceList,如果有變化,隨時setOption
return <div ref={divRef} style={{ height: "440px" }} />
}
三:options各個配置項(xiàng)
const option = {
backgroundColor: "#fff", //背景色
//tooltip :配置鼠標(biāo)經(jīng)過圖表區(qū)域時顯示的小彈窗的文字 //item:myCustomizeResourceList的內(nèi)部子項(xiàng)
tooltip: {
//提示框里的文字,參數(shù)item是data里的每一項(xiàng)
formatter: function (item) {
return `${item.name}:${item?.data?.value} `
}
},
// 工具集
toolbox:{
feature:{
saveAsImage:{
}
}
},
// 縮放配置
geo:{
roam: true, //是否允許鼠標(biāo)縮放
zoom: 1.2,
}
左下程度表
// 視覺映射 : 連續(xù)型
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的數(shù)據(jù)裝配到這里作為展示數(shù)據(jù)
series: [
{
name: '錄取人數(shù)',
type: 'map',
geoIndex: 0, //防止出現(xiàn)地圖重疊,賦值為0標(biāo)識只允許出現(xiàn)一張地圖
data:myCustomizeResourceList,
},
],
}注釋有點(diǎn)多,但是可能更有幫助
到此這篇關(guān)于react使用echart繪制地圖的文章就介紹到這了,更多相關(guān)react使用echart繪制地圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- React?+?ECharts動態(tài)折線圖完整實(shí)現(xiàn)代碼
- React19通用ECharts組件的使用示例
- 使用react+echarts實(shí)現(xiàn)變化趨勢縮略圖
- React中如何使用echarts寫出3d旋轉(zhuǎn)扇形圖
- React?echarts?組件的封裝使用案例
- React如何以Hook的方式使用Echarts
- react echarts刷新不顯示問題的解決方法
- react中使用echarts,并實(shí)現(xiàn)tooltip循環(huán)輪播方式
- React項(xiàng)目搭建與Echarts工具使用詳解
- React-ChartJS?使用教程
相關(guān)文章
React通過hook實(shí)現(xiàn)封裝表格常用功能
這篇文章主要為大家詳細(xì)介紹了React通過hook封裝表格常用功能的使用,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以參考下2023-12-12
react ant protable自定義實(shí)現(xiàn)搜索下拉框
這篇文章主要介紹了react ant protable自定義實(shí)現(xiàn)搜索下拉框,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
React?中如何將CSS?visibility?屬性設(shè)置為?hidden
這篇文章主要介紹了React中如何將CSS?visibility屬性設(shè)置為?hidden,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05
React獲取Java后臺文件流并下載Excel文件流程解析
這篇文章主要介紹了React獲取Java后臺文件流下載Excel文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
關(guān)于react-router/react-router-dom v4 history不能訪問問題的解決
這篇文章主要給大家介紹了關(guān)于react-router/react-router-dom v4 history不能訪問問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。2018-01-01
React 中 map 處理異步數(shù)據(jù)不渲染的問題及解決方法
文章講述了在使用React時遇到的異步問題導(dǎo)致頁面卡頓的情況,通過Promise.all等方法解決了異步操作的順序問題,使得頁面能夠正常渲染,感興趣的朋友跟隨小編一起看看吧2026-01-01

