Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yqlh-dataEase
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
frontend
yqlh-dataEase
Commits
3cb8a57b
Commit
3cb8a57b
authored
Nov 29, 2023
by
晁文轩
Browse files
Options
Browse Files
Download
Plain Diff
合并分支 'develop_cd' 到 'master'
Develop cd 查看合并请求
!35
parents
b6f6f8cd
3ea3b0a2
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
56 行增加
和
6 行删除
+56
-6
src/views/chart/components/AMap.vue
+41
-6
src/views/chart/components/aMap/aMap.js
+15
-0
没有找到文件。
src/views/chart/components/AMap.vue
查看文件 @
3cb8a57b
...
...
@@ -8,7 +8,8 @@
<
script
>
import
{
lazyAMapApiLoaderInstance
}
from
'vue-amap'
import
{
uuid
}
from
'vue-uuid'
import
{
baseAMapData
,
hazardLevel
}
from
'./aMap/aMap'
import
{
baseAMapData
,
hazardLevel
,
calculateCenter
}
from
'./aMap/aMap'
import
{
log
}
from
'@antv/g2plot/lib/utils'
export
default
{
props
:
{
...
...
@@ -22,6 +23,8 @@ export default {
map
:
{},
AMap
:
{},
layers
:
[],
text
:
[],
allParkList
:
[],
center
:
[
116.400586
,
39.903475
],
mapStyle
:
'amap://styles/6ee1c8252c951da095d5e4eaf9c65a1f'
,
...
...
@@ -33,6 +36,7 @@ export default {
chart
:
{
handler
(
newVal
,
oldVal
)
{
// this.drawLayer()
console
.
log
(
9999
)
this
.
initMap
()
},
deep
:
true
...
...
@@ -67,8 +71,14 @@ export default {
this
.
allParkList
=
JSON
.
parse
(
JSON
.
stringify
(
data
))
this
.
layers
=
[]
data
.
map
((
item
)
=>
{
const
color
=
hazardLevel
[
item
.
hazardLevel
]?.
color
const
color
=
item
.
hazardLevel
.
includes
(
'#'
)
?
item
.
hazardLevel
:
hazardLevel
[
item
.
hazardLevel
]?.
color
let
layer
=
null
let
text
=
null
let
center
=
[]
const
path
=
item
.
path
?
JSON
.
parse
(
item
.
path
)
:
[]
if
(
item
.
areaType
===
'1'
)
{
layer
=
new
AMap
.
Marker
({
position
:
new
AMap
.
LngLat
(
item
.
longitude
,
item
.
latitude
),
...
...
@@ -79,9 +89,10 @@ export default {
...
item
}
})
center
=
[
item
.
longitude
,
item
.
latitude
]
}
else
if
(
item
.
areaType
===
'2'
)
{
layer
=
new
AMap
.
Polygon
({
path
:
JSON
.
parse
(
item
.
path
)
,
path
:
path
,
fillColor
:
color
,
strokeColor
:
'transparent'
,
fillOpacity
:
0.6
,
...
...
@@ -90,9 +101,10 @@ export default {
...
item
}
})
center
=
calculateCenter
(
path
)
}
else
if
(
item
.
areaType
===
'3'
)
{
layer
=
new
AMap
.
Polyline
({
path
:
JSON
.
parse
(
item
.
path
)
,
path
:
path
,
borderWeight
:
3
,
strokeColor
:
color
,
strokeOpacity
:
1
,
...
...
@@ -102,26 +114,48 @@ export default {
...
item
}
})
center
=
calculateCenter
(
path
)
}
if
(
center
&&
center
.
length
===
2
)
{
text
=
new
AMap
.
Text
({
position
:
center
,
anchor
:
'bottom-center'
,
text
:
item
.
name
,
offset
:
[
0
,
26
],
style
:
{
'background-color'
:
'#fff'
,
'font-size'
:
'12px'
},
extData
:
{
...
item
}
})
}
if
(
layer
)
{
this
.
layers
.
push
(
layer
)
this
.
text
.
push
(
text
)
const
extData
=
layer
.
getExtData
()
const
extTextData
=
text
.
getExtData
()
layer
.
on
(
'click'
,
(
obj
)
=>
{
this
.
parkClick
(
extData
)
})
text
.
on
(
'click'
,
(
obj
)
=>
{
this
.
parkClick
(
extTextData
)
})
}
})
this
.
map
.
add
(
this
.
layers
)
this
.
map
.
add
(
[...
this
.
layers
,
...
this
.
text
]
)
this
.
map
.
setFitView
()
},
parkClick
(
item
)
{
console
.
log
(
item
)
const
id
=
item
.
id
const
highLightColor
=
'#AF24FF'
const
allPolyline
=
this
.
layers
this
.
allParkList
.
forEach
((
it
,
index
)
=>
{
if
(
allPolyline
[
index
])
{
const
color
=
hazardLevel
[
it
.
hazardLevel
]?.
color
const
color
=
item
.
hazardLevel
.
includes
(
'#'
)
?
item
.
hazardLevel
:
hazardLevel
[
item
.
hazardLevel
]?.
color
if
(
it
.
areaType
===
'1'
)
{
allPolyline
[
index
].
setContent
(
this
.
renderMarker
(
color
))
if
(
it
.
id
===
id
)
{
...
...
@@ -133,6 +167,7 @@ export default {
allPolyline
[
index
].
setOptions
({
[
it
.
areaType
===
'3'
?
'strokeColor'
:
'fillColor'
]:
color
})
if
(
it
.
id
===
id
)
{
if
(
item
.
path
&&
typeof
item
.
path
===
'string'
)
{
const
path
=
JSON
.
parse
(
item
.
path
)
...
...
src/views/chart/components/aMap/aMap.js
查看文件 @
3cb8a57b
...
...
@@ -39,3 +39,18 @@ export const hazardLevel = {
color
:
"#1890FF"
,
},
};
// 多边形中心点
export
const
calculateCenter
=
(
lnglatarr
)
=>
{
var
x
=
lnglatarr
.
map
(
function
(
a
)
{
return
a
[
0
];
});
var
y
=
lnglatarr
.
map
(
function
(
a
)
{
return
a
[
1
];
});
var
minX
=
Math
.
min
.
apply
(
null
,
x
);
var
maxX
=
Math
.
max
.
apply
(
null
,
x
);
var
minY
=
Math
.
min
.
apply
(
null
,
y
);
var
maxY
=
Math
.
max
.
apply
(
null
,
y
);
const
arr
=
[(
minX
+
maxX
)
/
2
,
(
minY
+
maxY
)
/
2
];
return
arr
;
};
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论