vue中使用百度地图,之前使用的是vue-baidu-map组件,在vue2中引入完全能正常使用,但是引入到vue3项目中,BMap is not defined频繁报错.。
官方地址:Vue Baidu Map
vue3中只能使用以下方法
一、public/index.html 中 加入
<script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=你的ak"></script>
二、.eslintrc.js中加入
module.exports = {
globals: {
BMap: true
}
}
三、vue.config.js中加入
module.exports = {
...,
configureWebpack: {
externals: {
"BMap": "BMap"
}
}
}
四、vue页面中,调用,并添加地图标注。
<template>
<div v-show="visible" class="map">
<div class="map-address" id="map"></div>
</div>
</template>
<script>
import BMap from 'BMap'
export default {
name: 'theMap',
data () {
return {
}
},
mounted() {
const map = new BMap.Map('map')
var point = new BMap.Point(118.750801, 31.944156)
map.centerAndZoom(point, 15)
const marker = new BMap.Marker(point)
map.addOverlay(marker)
const opts = {
width: 100,
height: 50
}
var infoWindow = new BMap.InfoWindow('这里显示地址详细信息', opts)
map.openInfoWindow(infoWindow, point) // 开启信息窗口
marker.addEventListener('click', function() {
map.openInfoWindow(infoWindow, point) // 开启信息窗口
})
},
methods: {
},
}
</script>