Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
E
ec-report-refactor
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lihuizhen
ec-report-refactor
Commits
706b6b15
Commit
706b6b15
authored
Jan 13, 2022
by
Jenny
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 中国地图
parent
553e7aed
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
292 additions
and
4 deletions
+292
-4
ChinaMap.vue
components/ChinaMap/ChinaMap.vue
+145
-4
geoCoordMap.js
components/ChinaMap/geoCoordMap.js
+146
-0
china.json
components/uni-ec-canvas/china.json
+1
-0
No files found.
components/ChinaMap/ChinaMap.vue
View file @
706b6b15
...
...
@@ -11,12 +11,153 @@
</
template
>
<
script
>
import
uniEcCanvas
from
'@/components/uni-ec-canvas/uni-ec-canvas'
import
*
as
echarts
from
'@/components/uni-ec-canvas/echarts'
import
*
as
chinaJson
from
'@/components/uni-ec-canvas/china.json'
import
echartElementData
from
'@/mixins/echartElementData.js'
import
{
geoCoordMapList
}
from
'./geoCoordMap'
let
chart
=
null
export
default
{
name
:
"ChinaMap"
,
data
()
{
mixins
:
[
echartElementData
],
data
()
{
return
{
ec
:
{
lazyLoad
:
true
}
}
},
components
:
{
uniEcCanvas
},
methods
:
{
initChart
()
{
this
.
$nextTick
(()
=>
{
this
.
$refs
[
'chinaMapCanvas'
].
init
((
canvas
,
width
,
height
,
canvasDpr
)
=>
{
chart
=
echarts
.
init
(
canvas
,
null
,
{
width
:
width
,
height
:
height
,
devicePixelRatio
:
canvasDpr
})
echarts
.
registerMap
(
'china'
,
chinaJson
)
canvas
.
setChart
(
chart
)
const
{
dataList
}
=
this
.
elementData
const
seriesData
=
dataList
.
chinaMapAreas
||
[]
// 处理成地图所需的数据格式
const
finalData
=
[];
const
mapHash
=
{}
seriesData
.
map
(
item
=>
{
if
(
!
mapHash
[
item
[
0
].
name
])
{
finalData
.
push
([
item
[
0
].
name
,
[]])
mapHash
[
item
[
0
].
name
]
=
true
}
const
index
=
finalData
.
map
(
child
=>
child
[
0
]).
indexOf
(
item
[
0
].
name
)
finalData
[
index
][
1
].
push
(
item
)
})
const
color
=
[
'#a6c84c'
,
'#ffa022'
]
// 航线的颜色
const
series
=
[]
finalData
.
forEach
((
item
,
i
)
=>
{
series
.
push
({
name
:
item
[
0
],
type
:
'lines'
,
zlevel
:
1
,
effect
:
{
show
:
true
,
period
:
4
,
trailLength
:
0.02
,
// symbol: 'arrow', // 箭头图标
symbolSize
:
5
// 图标大小
},
lineStyle
:
{
normal
:
{
color
:
color
[
i
],
width
:
1
,
opacity
:
0.8
,
// 尾迹线条透明度
curveness
:
0.2
}
},
data
:
this
.
convertData
(
item
[
1
])
},
{
name
:
item
[
0
],
type
:
'effectScatter'
,
coordinateSystem
:
'geo'
,
zlevel
:
2
,
rippleEffect
:
{
brushType
:
'stroke'
},
label
:
{
show
:
true
,
position
:
'right'
,
formatter
:
value
=>
{
if
(
this
.
elementInfo
.
option
.
dataset
.
formatter
)
{
return
this
.
$u
.
common
.
converFunction
(
this
.
elementInfo
.
option
.
dataset
.
formatter
,
value
)
}
else
{
return
this
.
elementInfo
.
option
.
dataset
.
show
?
`
${
value
.
data
.
name
}
:
${
value
.
data
.
value
[
2
]}
`
:
value
.
data
.
name
}
},
fontSize
:
this
.
elementInfo
.
option
.
dataset
.
fontSize
,
color
:
this
.
elementInfo
.
option
.
dataset
.
color
,
fontWeight
:
this
.
elementInfo
.
option
.
dataset
.
fontWeight
},
symbolSize
:
4
,
itemStyle
:
{
color
:
color
[
i
]
},
data
:
item
[
1
].
map
(
dataItem
=>
{
return
{
name
:
dataItem
[
1
].
name
,
value
:
geoCoordMapList
[
dataItem
[
1
].
name
].
concat
([
dataItem
[
1
].
value
])
}
})
})
})
};
const
options
=
{
title
:
{
...
this
.
elementInfo
.
option
.
title
},
legend
:
{
...
this
.
elementInfo
.
option
.
legend
},
geo
:
{
map
:
'china'
,
zoom
:
1.2
,
roam
:
false
,
itemStyle
:
{
areaColor
:
'rgba(34, 70, 168, 0.7)'
,
borderColor
:
'#0692a4'
},
emphasis
:
{
itemStyle
:
{
areaColor
:
'rgba(119, 139, 224, 0.548)'
}
}
},
series
:
series
}
chart
.
setOption
(
options
)
return
chart
})
})
},
convertData
(
data
)
{
const
res
=
[]
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
const
dataItem
=
data
[
i
]
const
fromCoord
=
geoCoordMapList
[
dataItem
[
0
].
name
]
const
toCoord
=
geoCoordMapList
[
dataItem
[
1
].
name
]
if
(
fromCoord
&&
toCoord
)
{
res
.
push
({
fromName
:
dataItem
[
0
].
name
,
toName
:
dataItem
[
1
].
name
,
coords
:
[
fromCoord
,
toCoord
],
value
:
dataItem
[
1
].
value
})
}
}
return
res
}
}
}
</
script
>
...
...
components/ChinaMap/geoCoordMap.js
0 → 100644
View file @
706b6b15
export
const
geoCoordMapList
=
{
"北京"
:
[
116.4551
,
40.2539
],
"天津"
:
[
117.4219
,
39.4189
],
"河北"
:
[
114.4995
,
38.1006
],
"山西"
:
[
112.3352
,
37.9413
],
"内蒙古"
:
[
111.4124
,
40.4901
],
"辽宁"
:
[
123.1238
,
42.1216
],
"长春"
:
[
125.8154
,
44.2584
],
"黑龙江"
:
[
127.9688
,
45.368
],
"吉林"
:
[
125.3245
,
43.8868
],
"上海"
:
[
121.4648
,
31.2891
],
"江苏"
:
[
118.8062
,
31.9208
],
"浙江"
:
[
119.5313
,
29.8773
],
"安徽"
:
[
117.29
,
32.0581
],
"福建"
:
[
119.4543
,
25.9222
],
"江西"
:
[
116.0046
,
28.6633
],
"山东"
:
[
117.1582
,
36.8701
],
"河南"
:
[
113.4668
,
34.6234
],
"湖北"
:
[
114.3896
,
30.6628
],
"湖南"
:
[
113.0823
,
28.2568
],
"广东"
:
[
113.5107
,
23.2196
],
"广西"
:
[
108.479
,
23.1152
],
"海南"
:
[
110.3893
,
19.8516
],
"重庆"
:
[
107.7539
,
30.1904
],
"四川"
:
[
103.9526
,
30.7617
],
"贵州"
:
[
106.6992
,
26.7682
],
"云南"
:
[
102.9199
,
25.4663
],
"西藏"
:
[
91.1865
,
30.1465
],
"陕西"
:
[
109.1162
,
34.2004
],
"甘肃"
:
[
103.5901
,
36.3043
],
"青海"
:
[
101.4038
,
36.8207
],
"宁夏"
:
[
106.3586
,
38.1775
],
"新疆"
:
[
87.9236
,
43.5883
],
"香港"
:
[
114.2784
,
22.3057
],
"澳门"
:
[
113.5715
,
22.1583
],
"台湾"
:
[
121.0295
,
23.6082
],
'东莞'
:
[
113.8953
,
22.901
],
'东营'
:
[
118.7073
,
37.5513
],
'中山'
:
[
113.4229
,
22.478
],
'临汾'
:
[
111.4783
,
36.1615
],
'临沂'
:
[
118.3118
,
35.2936
],
'丹东'
:
[
124.541
,
40.4242
],
'丽水'
:
[
119.5642
,
28.1854
],
'乌鲁木齐'
:
[
87.9236
,
43.5883
],
'佛山'
:
[
112.8955
,
23.1097
],
'保定'
:
[
115.0488
,
39.0948
],
'兰州'
:
[
103.5901
,
36.3043
],
'包头'
:
[
110.3467
,
41.4899
],
'北海'
:
[
109.314
,
21.6211
],
'南京'
:
[
118.8062
,
31.9208
],
'南宁'
:
[
108.479
,
23.1152
],
'南昌'
:
[
116.0046
,
28.6633
],
'南通'
:
[
121.1023
,
32.1625
],
'厦门'
:
[
118.1689
,
24.6478
],
'台州'
:
[
121.1353
,
28.6688
],
'合肥'
:
[
117.29
,
32.0581
],
'呼和浩特'
:
[
111.4124
,
40.4901
],
'咸阳'
:
[
108.4131
,
34.8706
],
'哈尔滨'
:
[
127.9688
,
45.368
],
'唐山'
:
[
118.4766
,
39.6826
],
'嘉兴'
:
[
120.9155
,
30.6354
],
'大同'
:
[
113.7854
,
39.8035
],
'大连'
:
[
122.2229
,
39.4409
],
'太原'
:
[
112.3352
,
37.9413
],
'威海'
:
[
121.9482
,
37.1393
],
'宁波'
:
[
121.5967
,
29.6466
],
'宝鸡'
:
[
107.1826
,
34.3433
],
'宿迁'
:
[
118.5535
,
33.7775
],
'常州'
:
[
119.4543
,
31.5582
],
'广州'
:
[
113.5107
,
23.2196
],
'廊坊'
:
[
116.521
,
39.0509
],
'延安'
:
[
109.1052
,
36.4252
],
'张家口'
:
[
115.1477
,
40.8527
],
'徐州'
:
[
117.5208
,
34.3268
],
'德州'
:
[
116.6858
,
37.2107
],
'惠州'
:
[
114.6204
,
23.1647
],
'成都'
:
[
103.9526
,
30.7617
],
'扬州'
:
[
119.4653
,
32.8162
],
'承德'
:
[
117.5757
,
41.4075
],
'拉萨'
:
[
91.1865
,
30.1465
],
'无锡'
:
[
120.3442
,
31.5527
],
'日照'
:
[
119.2786
,
35.5023
],
'昆明'
:
[
102.9199
,
25.4663
],
'杭州'
:
[
119.5313
,
29.8773
],
'枣庄'
:
[
117.323
,
34.8926
],
'柳州'
:
[
109.3799
,
24.9774
],
'株洲'
:
[
113.5327
,
27.0319
],
'武汉'
:
[
114.3896
,
30.6628
],
'汕头'
:
[
117.1692
,
23.3405
],
'江门'
:
[
112.6318
,
22.1484
],
'沈阳'
:
[
123.1238
,
42.1216
],
'沧州'
:
[
116.8286
,
38.2104
],
'河源'
:
[
114.917
,
23.9722
],
'泉州'
:
[
118.3228
,
25.1147
],
'泰安'
:
[
117.0264
,
36.0516
],
'泰州'
:
[
120.0586
,
32.5525
],
'济南'
:
[
117.1582
,
36.8701
],
'济宁'
:
[
116.8286
,
35.3375
],
'海口'
:
[
110.3893
,
19.8516
],
'淄博'
:
[
118.0371
,
36.6064
],
'淮安'
:
[
118.927
,
33.4039
],
'深圳'
:
[
114.5435
,
22.5439
],
'清远'
:
[
112.9175
,
24.3292
],
'温州'
:
[
120.498
,
27.8119
],
'渭南'
:
[
109.7864
,
35.0299
],
'湖州'
:
[
119.8608
,
30.7782
],
'湘潭'
:
[
112.5439
,
27.7075
],
'滨州'
:
[
117.8174
,
37.4963
],
'潍坊'
:
[
119.0918
,
36.524
],
'烟台'
:
[
120.7397
,
37.5128
],
'玉溪'
:
[
101.9312
,
23.8898
],
'珠海'
:
[
113.7305
,
22.1155
],
'盐城'
:
[
120.2234
,
33.5577
],
'盘锦'
:
[
121.9482
,
41.0449
],
'石家庄'
:
[
114.4995
,
38.1006
],
'福州'
:
[
119.4543
,
25.9222
],
'秦皇岛'
:
[
119.2126
,
40.0232
],
'绍兴'
:
[
120.564
,
29.7565
],
'聊城'
:
[
115.9167
,
36.4032
],
'肇庆'
:
[
112.1265
,
23.5822
],
'舟山'
:
[
122.2559
,
30.2234
],
'苏州'
:
[
120.6519
,
31.3989
],
'莱芜'
:
[
117.6526
,
36.2714
],
'菏泽'
:
[
115.6201
,
35.2057
],
'营口'
:
[
122.4316
,
40.4297
],
'葫芦岛'
:
[
120.1575
,
40.578
],
'衡水'
:
[
115.8838
,
37.7161
],
'衢州'
:
[
118.6853
,
28.8666
],
'西宁'
:
[
101.4038
,
36.8207
],
'西安'
:
[
109.1162
,
34.2004
],
'贵阳'
:
[
106.6992
,
26.7682
],
'连云港'
:
[
119.1248
,
34.552
],
'邢台'
:
[
114.8071
,
37.2821
],
'邯郸'
:
[
114.4775
,
36.535
],
'郑州'
:
[
113.4668
,
34.6234
],
'鄂尔多斯'
:
[
108.9734
,
39.2487
],
'金华'
:
[
120.0037
,
29.1028
],
'铜川'
:
[
109.0393
,
35.1947
],
'银川'
:
[
106.3586
,
38.1775
],
'镇江'
:
[
119.4763
,
31.9702
],
'长沙'
:
[
113.0823
,
28.2568
],
'长治'
:
[
112.8625
,
36.4746
],
'阳泉'
:
[
113.4778
,
38.0951
],
'青岛'
:
[
120.4651
,
36.3373
],
'韶关'
:
[
113.7964
,
24.7028
]
};
\ No newline at end of file
components/uni-ec-canvas/china.json
0 → 100644
View file @
706b6b15
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment