1. 申请百度地图ak
ak会在引入百度js的时候用到,你可以点击这里申请一个唯一ak
2. 引入百度地图js
在public/index.html里面添加下面代码,注意把“你的ak”替换成你申请的ak
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的ak"></script>
复制代码
3. 配置webpack
由于cli3隐藏了webpack配置文件,所以我们需要在根目录创建一个vue.config.js文件,并写入下面代码
module.exports = {
configureWebpack: {
externals: {
"BMap": "BMap"
}
}
}
复制代码
vue会读取该文件,并合并到webpack配置文件上面,如果你想了解更多关于cli3和webpack,你可以点击这里
4. 单组件文件引入
如果你是打算在单文件组件内使用(后缀为.vue文件),你可以参考下面代码
<template>
<div id="map">
</div>
</template>
<script>
import BMap from 'BMap'
export default {
name: 'Map',
data () {
return {
}
},
methods: {
createMap () {
/* eslint-disable */
// 创建Map实例
var map = new BMap.Map("map")
// 初始化地图,设置中心点坐标和地图级别
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11)
//添加地图类型控件
map.addControl(new BMap.MapTypeControl({
mapTypes:[BMAP_NORMAL_MAP, BMAP_HYBRID_MAP]
}))
// 设置地图显示的城市 此项是必须设置的
map.setCurrentCity("北京")
//开启鼠标滚轮缩放
map.enableScrollWheelZoom(true)
/* eslint-enable */
}
},
mounted () {
this.createMap()
}
}
</script>
<style scoped lang="stylus">
#map
min-height 100vh
</style>
复制代码
需要注意的是:
- 如果你在mounted生命周期之前进行操作,会报错。
- 你需要给容器设置一个高度,不然默认为0
- 如果你使用eslint作为代码风格检查,就需要如上面代码那样忽略检查
结尾:以上只是简单的时候,如有更复制的需求,请前往这里寻找答案
所有评论(0)