Skip to content

Commit 709048a

Browse files
committed
update
1 parent 827be78 commit 709048a

File tree

2 files changed

+136
-0
lines changed

2 files changed

+136
-0
lines changed

src/page/chinaMap/index.js

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
import React, {
2+
useCallback, useRef,
3+
} from 'react';
4+
import echarts from '../../echarts';
5+
6+
7+
const provinceNameMap = {
8+
// 北京市: '北京',
9+
// 天津市: '天津',
10+
内蒙古自治区: '内蒙古',
11+
// 上海市: '上海',
12+
广西壮族自治区: '广西',
13+
// 重庆市: '重庆',
14+
西藏自治区: '西藏',
15+
宁夏回族自治区: '宁夏',
16+
新疆维吾尔自治区: '新疆',
17+
香港特别行政区: '香港',
18+
澳门特别行政区: '澳门',
19+
};
20+
21+
function replaceProvinceName(key) {
22+
const val = provinceNameMap[key];
23+
return val || key;
24+
}
25+
26+
function randomData() {
27+
return Math.round(Math.random()*500);
28+
}
29+
30+
function initChart(inst, opt = {}) {
31+
if (!inst) {
32+
return;
33+
}
34+
const mydata = [
35+
{name: '北京',value: '100' },{name: '天津',value: randomData() },
36+
{name: '上海',value: randomData() },{name: '重庆',value: randomData() },
37+
{name: '河北',value: randomData() },{name: '河南',value: randomData() },
38+
{name: '云南',value: randomData() },{name: '辽宁',value: randomData() },
39+
{name: '黑龙江',value: randomData() },{name: '湖南',value: randomData() },
40+
{name: '安徽',value: randomData() },{name: '山东',value: randomData() },
41+
{name: '新疆',value: randomData() },{name: '江苏',value: randomData() },
42+
{name: '浙江',value: randomData() },{name: '江西',value: randomData() },
43+
{name: '湖北',value: randomData() },{name: '广西壮族自治区',value: randomData() },
44+
{name: '甘肃',value: randomData() },{name: '山西',value: randomData() },
45+
{name: '内蒙古自治区',value: randomData() },{name: '陕西',value: randomData() },
46+
{name: '吉林',value: randomData() },{name: '福建',value: randomData() },
47+
{name: '贵州',value: randomData() },{name: '广东',value: randomData() },
48+
{name: '青海',value: randomData() },{name: '西藏',value: randomData() },
49+
{name: '四川',value: randomData() },{name: '宁夏',value: randomData() },
50+
{name: '海南',value: randomData() },
51+
{name: '台湾',value: randomData() },
52+
{name: '香港',value: randomData() },{name: '澳门',value: randomData() },
53+
// {name: '南海诸岛',value: randomData() }
54+
];
55+
const optionMap = {
56+
backgroundColor: '#FFFFFF',
57+
title: {
58+
text: '全国地图大数据',
59+
subtext: '',
60+
x:'center'
61+
},
62+
tooltip : {
63+
trigger: 'item'
64+
},
65+
66+
//左侧小导航图标
67+
visualMap: {
68+
show : true,
69+
x: 'left',
70+
y: 'center',
71+
splitList: [
72+
{start: 500, end:600},{start: 400, end: 500},
73+
{start: 300, end: 400},{start: 200, end: 300},
74+
{start: 100, end: 200},{start: 0, end: 100},
75+
],
76+
color: ['#5475f5', '#9feaa5', '#85daef','#74e2ca', '#e6ac53', '#9fb5ea']
77+
},
78+
79+
//配置属性
80+
series: [{
81+
name: '数据',
82+
type: 'map',
83+
mapType: 'china',
84+
roam: true,
85+
label: {
86+
position: 'inside',
87+
emphasis: {
88+
show: false
89+
}
90+
},
91+
data: mydata.map(item => ({
92+
name: replaceProvinceName(item.name),
93+
value: item.value,
94+
label: {
95+
show: true,
96+
},
97+
})), //数据
98+
}]
99+
};
100+
101+
//使用制定的配置项和数据显示图表
102+
inst.setOption(optionMap, opt);
103+
}
104+
105+
function DataChart() {
106+
const myChart = useRef(null);
107+
const chartDOMRef = useCallback((el) => {
108+
if (el) {
109+
if (!myChart.current) {
110+
myChart.current = echarts.init(el);
111+
}
112+
initChart(myChart.current, {
113+
notMerge: true,
114+
});
115+
} else {
116+
if (!myChart.current) {
117+
return;
118+
}
119+
myChart.current.dispose();
120+
}
121+
}, []);
122+
123+
return (
124+
<>
125+
<div ref={chartDOMRef} style={{ height: 300, backgroundColor: '#dedede' }} />
126+
</>
127+
);
128+
}
129+
130+
131+
export default DataChart;

src/router/index.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import Counter from '../page/Counter/index'
99
import Single from '../page/Single/index'
1010
import Optimize from '../page/Optimize/index'
1111
import EchartBox from '../page/echartBox/index'
12+
import ChinaMap from '../page/chinaMap/index'
1213

1314
function Header() {
1415
return (
@@ -45,6 +46,9 @@ function Header() {
4546
<li>
4647
<Link to="/echart">echart的简单应用</Link>
4748
</li>
49+
<li>
50+
<Link to="/map">echart实现中国地图</Link>
51+
</li>
4852
</ul>
4953
);
5054
}
@@ -66,6 +70,7 @@ function App() {
6670
<Route path="/single" component={Single} />
6771
<Route path="/optimize" component={Optimize} />
6872
<Route path="/echart" component={EchartBox} />
73+
<Route path="/map" component={ChinaMap} />
6974
</Switch>
7075
</div>
7176
</BrowserRouter>

0 commit comments

Comments
 (0)