生活随笔
收集整理的這篇文章主要介紹了
vue高德地图显示世界地点信息分布的多窗口问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
效果圖
<template
><div
class="home"><div
class="map" id
="container"></div
></div
>
</template
><script
>
export default {name
: 'worldMap',components
: {},data () {return {map
: '',infoWindow
: '',marker
: '',n
: 0,list
: [{name
: '安哥拉',longitude
: '12.222318',latitude
: '-4.909572',year
:'2017'},{name
: '諾福克島',longitude
: '167.953035',latitude
: '-29.035248',year
:'2021'} ]}},mounted () {this.initMap()},methods
: {initMap() {this.map
= new AMap.Map(document
.getElementById("container"), {mapStyle
: 'amap://styles/normal',resizeEnable
: false,center
: [this.list
[0].longitude
, this.list
[0].latitude
],zoom
: 4,keyboardEnable
: false,zoomEnable
: true,dragEnable
: true,animateEnable
: true});this.list
.forEach(v => {this.initMarker({ lng
: v
.longitude
, lat
: v
.latitude
}, v
);this.n
++;})},initMarker(location, item) {let icon
= new AMap.Icon({size
: new AMap.Size(20, 20),image
: require("../assets/images/mark.png"),imageSize
: new AMap.Size(20, 20)});this.marker
= new AMap.Marker({icon
: icon
, position
: [location
.lng
, location
.lat
], offset
: new AMap.Pixel(0, -30) });this.marker
.setLabel({offset
:new AMap.Pixel(0,0),content
:this.createInfoWindow(this.list
[this.n
]),direction
:'bottom'});this.initInfoWindow(location
.lng
, location
.lat
, item
)this.infoWindow
.open(this.map
, {Q: location
.lat
, R: location
.lng
, lat
: location
.lat
, lng
: location
.lng
})this.marker
.setMap(this.map
)},initInfoWindow(lng, lat, item) {this.infoWindow
= new AMap.InfoWindow({isCustom
: false, anchor
: 'bottom-center',content
: '',offset
: new AMap.Pixel(0, -20),autoMove
: true,closeWhenClickMap
: false,});},createInfoWindow(item) {if(this.n
<this.list
.length
-1 ){console
.log(this.n
)}return `<div class="dn-info-window"><div class="dn-info-name">${item.name}</div><div class="dn-info-num">發(fā)生年份:<span>${item.year}</span></div></div>`}}
}
</script
>
<style lang
="less" scoped
>
.map
{width
: 100%;height
: 1000px
;
}
/deep
/.info
-window
{padding
: 10px
;background
: rgba(4, 77, 145, 0.753);color
: #
3196FA
;border
-radius
: 10px
;-webkit
-border
-radius
: 10px
;-moz
-border
-radius
: 10px
;-ms
-border
-radius
: 10px
;-o
-border
-radius
: 10px
;.info
-name
{font
-size
: 16px
;font
-family
: PingFang
SC;font
-weight
: 500;color
: #
FFFFFF;}.info
-num
{font
-size
: 14px
;font
-family
: PingFang
SC;font
-weight
: 400;color
: #
A5A3A1;>span
{font
-size
: 14px
;color
: #
3196FA
;&.active
-color
{color
: #
EF4864;}}}
}
</style
>
這是在其他作者的基礎上做的少量修改,能同時顯示多點的文本信息,本來打算用信息窗口的,畢竟能顯示更多類型的數據,不過高德地圖不提供同時顯示的API,只能選了折中的方法只顯示文本信息,有興趣的大佬可以研究下自定義同時顯示多窗體的方法,而不是直接用API
總結
以上是生活随笔為你收集整理的vue高德地图显示世界地点信息分布的多窗口问题的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。