react使用echart繪制地圖的案例
更新時間:2023年01月11日 09:39:04 作者:致愛麗絲
這篇文章主要介紹了react使用echart繪制地圖,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
一:導入靜態(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ù)式組件,接受需要導入的數(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:地圖名 本項目中不需要
//注冊完畢后,創(chuàng)建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)
//監(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各個配置項
const option = {
backgroundColor: "#fff", //背景色
//tooltip :配置鼠標經(jīng)過圖表區(qū)域時顯示的小彈窗的文字 //item:myCustomizeResourceList的內(nèi)部子項
tooltip: {
//提示框里的文字,參數(shù)item是data里的每一項
formatter: function (item) {
return `${item.name}:${item?.data?.value} `
}
},
// 工具集
toolbox:{
feature:{
saveAsImage:{
}
}
},
// 縮放配置
geo:{
roam: true, //是否允許鼠標縮放
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標識只允許出現(xiàn)一張地圖
data:myCustomizeResourceList,
},
],
}注釋有點多,但是可能更有幫助
到此這篇關(guān)于react使用echart繪制地圖的文章就介紹到這了,更多相關(guān)react使用echart繪制地圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
React創(chuàng)建組件的三種方式及其區(qū)別
本文主要介紹了React創(chuàng)建組件的三種方式及其區(qū)別,具有一定的參考價值,下面跟著小編一起來看下吧2017-01-01
TS裝飾器bindThis優(yōu)雅實現(xiàn)React類組件中this綁定
這篇文章主要為大家介紹了TS裝飾器bindThis優(yōu)雅實現(xiàn)React類組件中this綁定,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11
React?中如何將CSS?visibility?屬性設(shè)置為?hidden
這篇文章主要介紹了React中如何將CSS?visibility屬性設(shè)置為?hidden,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05
React項目配置axios和反向代理和process.env環(huán)境配置等問題
這篇文章主要介紹了React項目配置axios和反向代理和process.env環(huán)境配置等問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12

