Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
agcs2.0-web
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
liang
agcs2.0-web
Commits
3cfe1b58
Commit
3cfe1b58
authored
Feb 23, 2023
by
miaojiale
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
首页地图部分功能
parent
ebb93c18
Changes
3
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
158 additions
and
2 deletions
+158
-2
china.json
src/assets/json/china.json
+1
-0
index.vue
src/views/Home/Map/index.vue
+152
-0
index.vue
src/views/Home/index.vue
+5
-2
No files found.
src/assets/json/china.json
0 → 100644
View file @
3cfe1b58
This diff is collapsed.
Click to expand it.
src/views/Home/Map/index.vue
0 → 100644
View file @
3cfe1b58
<
template
>
<div
id=
"map"
ref=
"areaRankingAll"
></div>
</
template
>
<
script
>
import
*
as
echarts
from
"
echarts
"
import
axios
from
"
axios
"
//采用axios动态请求数据
export
default
{
data
()
{
return
{
//线上请求JSON文件数据地址
publicUrl
:
"
https://geo.datav.aliyun.com/areas_v3/bound/
"
,
//allCode 区域行政编码信息
allCode
:
[
// {name:"廉江市",adcode:"440881"}
],
locate
:
[
{
name
:
"
安徽
"
,
value
:
[
117.29
,
32.0581
,
50
],
},
],
}
},
watch
:
{},
mounted
()
{
this
.
initChart
()
//初始化地图
},
methods
:
{
cancel
()
{
this
.
initChart
()
},
getGeoJson
(
jsonName
)
{
return
axios
.
get
(
this
.
publicUrl
+
jsonName
)
},
initEcharts
(
geoJson
,
name
,
chart
)
{
console
.
log
(
geoJson
.
features
,
name
)
let
self
=
this
echarts
.
registerMap
(
name
,
geoJson
)
let
option
=
{
title
:
{
text
:
""
,
// 地图名称
},
tooltip
:
{
show
:
true
,
formatter
:
function
(
params
)
{
if
(
params
.
value
.
length
>
1
)
{
return
params
.
name
+
"
:
"
+
params
.
value
[
2
]
+
"
人
"
}
return
`
${
params
.
name
}
:
${
params
.
value
?
params
.
value
:
0
}
人`
},
textStyle
:
{
fontSize
:
14
,
fontFamily
:
"
fzzz
"
,
color
:
"
#fff
"
},
backgroundColor
:
"
rgba(0,0,0,0.3)
"
,
borderColor
:
"
rgba(0,0,0,0.3)
"
,
},
geo
:
{
show
:
false
,
map
:
name
,
width
:
name
==
"
中国
"
?
"
70%
"
:
"
36%
"
,
// 约束地图大小
top
:
"
4%
"
,
},
series
:
[
{
// 小点,通过geo知道地图位置
name
:
""
,
type
:
"
scatter
"
,
coordinateSystem
:
"
geo
"
,
data
:
this
.
locate
,
symbolSize
:
8
,
encode
:
{
value
:
2
,
},
tooltip
:
{
show
:
false
,
},
label
:
{},
emphasis
:
{},
},
{
type
:
"
map
"
,
map
:
name
,
width
:
name
==
"
中国
"
?
"
70%
"
:
"
30%
"
,
// 约束地图大小
top
:
"
5%
"
,
// roam: true, //是否开启滚轮缩放
// zoom: 1.5, //当前视角缩放比,调节这个设置初始大小
// center: ["10%", 0],
// scaleLimit: {
// min: 0.2,
// max: 2,
// }, // 最大最小缩放比例
label
:
{
normal
:
{
show
:
false
,
},
emphasis
:
{
show
:
false
,
},
},
itemStyle
:
{
normal
:
{
areaColor
:
"
#EDEFFF
"
,
borderColor
:
"
#7597FA
"
,
borderWidth
:
1
,
},
emphasis
:
{
areaColor
:
"
#4E68FF
"
,
//悬浮背景
},
},
data
:
[{
name
:
"
安徽省
"
,
value
:
50
}],
},
],
}
chart
.
setOption
(
option
,
true
)
//加个true解决下钻的视角偏移
chart
.
off
(
"
click
"
)
chart
.
on
(
"
click
"
,
(
params
)
=>
{
//点击区域时的行政编码,然后再进行匹配
let
clickCode
=
self
.
allCode
.
filter
(
(
areaJson
)
=>
areaJson
.
name
===
params
.
name
)[
0
].
adcode
console
.
log
(
"
行政编码:
"
+
clickCode
)
//1、如果要实现多级下钻并且展示子区域的话,下钻点击事件请求的JSON必须是该点击区域的全面父级JSON(即没有自己只有孩子们组成)
//2、如果要实现地图只下钻一次,并且不展示目标下钻区域的子区域。如第一层地图是中国,实现点击某个省下钻到该省,但是不展示该省的子区域,那么下钻点击事件请求的JSON必须是该点击区域的确切json(即只有自己没有孩子们)
//声明:比如这里线上引用的父级JSON带有:地域行政编码_full.json(如中国 100000_full.json),子级JSON是行政编码.json(如廉江市 440881.json)
self
.
getGeoJson
(
clickCode
+
"
_full.json
"
)
.
then
((
res
)
=>
{
self
.
initEcharts
(
res
.
data
,
params
.
name
,
chart
)
})
.
catch
((
err
)
=>
{
console
.
log
(
err
,
"
err
"
)
self
.
getGeoJson
(
"
100000_full.json
"
).
then
((
China
)
=>
{
self
.
initEcharts
(
China
.
data
,
"
中国
"
,
chart
)
})
})
console
.
log
(
params
)
})
},
//带头函数-初始化
initChart
()
{
let
chart
=
echarts
.
init
(
this
.
$refs
.
areaRankingAll
)
//this.allCode获取所有的区域编码信息
this
.
getGeoJson
(
"
all.json
"
).
then
((
all
)
=>
{
this
.
allCode
=
all
.
data
})
//初始化地图展示
this
.
getGeoJson
(
"
100000_full.json
"
).
then
((
China
)
=>
{
this
.
initEcharts
(
China
.
data
,
"
中国
"
,
chart
)
})
},
},
}
</
script
>
<
style
lang=
"scss"
scoped
></
style
>
src/views/Home/index.vue
View file @
3cfe1b58
...
...
@@ -33,7 +33,8 @@
<div
class=
"flex"
>
<div
class=
"left box cenbox"
>
<div
class=
"box_title text-center"
>
联盟地图
</div>
<img
class=
"map"
src=
"~@/assets/img/Home/map.png"
alt=
""
/>
<!--
<img
class=
"map"
src=
"~@/assets/img/Home/map.png"
alt=
""
/>
-->
<Map></Map>
</div>
<div
class=
"right box tabbox"
style=
"height: 458px"
>
<el-tabs
v-model=
"exTab"
>
...
...
@@ -193,7 +194,9 @@
<
script
>
import
{
getRankTotal
,
getCurrentQuarter
}
from
"
@/api/Home
"
import
{
articleList
}
from
"
@/api/operation-management
"
import
Map
from
"
./Map
"
export
default
{
components
:
{
Map
},
data
()
{
return
{
fixIndex
:
-
1
,
...
...
@@ -426,7 +429,7 @@ export default {
}
.cenbox
{
height
:
458px
;
.
map
{
#
map
{
width
:
100%
;
height
:
422px
;
object-fit
:
contain
;
...
...
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