@@ -17,6 +17,8 @@ export default function PassengerCountChart() {
1717 const [ loading , setLoading ] = useState ( false )
1818 const [ interval , setInterval ] = useState < '15min' | '1h' > ( '15min' )
1919 const [ date , setDate ] = useState ( formatDate ( new Date ( '2013-09-12' ) ) )
20+ const [ mapLoaded , setMapLoaded ] = useState ( false )
21+ const [ mapOption , setMapOption ] = useState < any > ( null )
2022
2123 useEffect ( ( ) => {
2224 setLoading ( true )
@@ -27,6 +29,55 @@ export default function PassengerCountChart() {
2729 . finally ( ( ) => setLoading ( false ) )
2830 } , [ interval ] )
2931
32+ useEffect ( ( ) => {
33+ fetch ( '/370100_full.json' )
34+ . then ( res => res . json ( ) )
35+ . then ( geoJson => {
36+ // 注册地图
37+ // @ts -ignore
38+ import ( 'echarts' ) . then ( echarts => {
39+ echarts . registerMap ( 'jinan' , geoJson )
40+ setMapLoaded ( true )
41+ setMapOption ( {
42+ title : { text : '济南市地图' , left : 'center' } ,
43+ tooltip : { trigger : 'item' } ,
44+ visualMap : {
45+ min : 0 ,
46+ max : 100 ,
47+ left : 'left' ,
48+ top : 'bottom' ,
49+ text : [ '高' , '低' ] ,
50+ inRange : { color : [ '#e0ffff' , '#006edd' ] } ,
51+ show : true
52+ } ,
53+ series : [
54+ {
55+ name : '区域数据' ,
56+ type : 'map' ,
57+ map : 'jinan' ,
58+ roam : true ,
59+ label : { show : true } ,
60+ data : [
61+ { name : '历下区' , value : 50 } ,
62+ { name : '市中区' , value : 80 } ,
63+ { name : '槐荫区' , value : 60 } ,
64+ { name : '天桥区' , value : 70 } ,
65+ { name : '历城区' , value : 90 } ,
66+ { name : '长清区' , value : 40 } ,
67+ { name : '章丘区' , value : 30 } ,
68+ { name : '济阳区' , value : 20 } ,
69+ { name : '莱芜区' , value : 10 } ,
70+ { name : '钢城区' , value : 15 } ,
71+ { name : '平阴县' , value : 25 } ,
72+ { name : '商河县' , value : 35 }
73+ ]
74+ }
75+ ]
76+ } )
77+ } )
78+ } )
79+ } , [ ] )
80+
3081 const statOption = {
3182 title : { text : `${ interval === '15min' ? '15分钟' : '1小时' } 乘客数量分布` , left : 'center' } ,
3283 tooltip : { trigger : 'axis' } ,
@@ -82,6 +133,13 @@ export default function PassengerCountChart() {
82133 ) : (
83134 < ReactECharts style = { { height : 400 } } option = { statOption } notMerge = { true } lazyUpdate = { true } />
84135 ) }
136+ { /* 新增济南市地图展示 */ }
137+ < Text mt = { 8 } mb = { 2 } fontWeight = "bold" > 济南市地图:</ Text >
138+ { mapLoaded && mapOption ? (
139+ < ReactECharts style = { { height : 500 } } option = { mapOption } notMerge = { true } lazyUpdate = { true } />
140+ ) : (
141+ < Text > 地图加载中...</ Text >
142+ ) }
85143 </ >
86144 )
87145}
0 commit comments