详解vue项目中调用百度地图API使用方法

步骤一:申请百度地图密钥;

JavaScript API v1.4以及以前的版本无序申请秘钥(ak),自v1.5版本开始需要先申请秘钥(ak),才可以使用,如需获取更高的配额,需要申请  认证企业用户。百度地图API 链接地址:http://lbsyun.baidu.com/apiconsole/key  

步骤二:在index.html中添加百度地图JavaScript API接口;  

<script src="http://api.map.baidu.com/api?v=1.4" type="text/javascript"></script>  // v1.4版本以及以前版本
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的秘钥" ></script> //1.5版本,需要秘钥

步骤三:在webpack.base.conf.js配置文件中配置BMap,在module.exports 中与entry平级;如果还有其他的,同样在下面引入就可以了,比如自定义覆盖物BMap_Symbol_SHAPE_POINT等。    (需要重新 npm run dev才可以)      

module.exports = {
 entry: {
 app: './src/main.js'
 },
 externals: {
 'BMap': 'BMap',
 'BMap_Symbol_SHAPE_POINT': 'BMap_Symbol_SHAPE_POINT'
 },

步骤四:在组件中创建一个容器,用来显示百度地图(宽高最好都是100%);

<div class="baidumap" id="allmap">
</div>

步骤五:在地图组件中import BMap,否则会出现"BMap undefined";还有这个BMap_Symbol_SHAPE_POINT,因为是用“_”连字符,会报错让你这个没有用驼峰命名。所以引入时,把这个连字符去掉就行了。

import BMap from 'BMap
import BMapSymbolSHAPEPOINT from 'BMap_Symbol_SHAPE_POINT'

步骤六:创建地图对象,在mounted生命周期调用;      

mounted () {
 this.baiduMap()
},
methods: {
 // 返回
 goback () {
 this.$router.go(-1)
 },
 baiduMap () {
 var map = new BMap.Map('allmap')
 var point = new BMap.Point(111.742579, 40.818675)
 map.centerAndZoom(point, 12)
 var marker = new BMap.Marker(point) // 创建标注
 map.addOverlay(marker)    // 将标注添加到地图中
 }
}

步骤七:将组件插入父组件中;

详解vue项目中调用百度地图API使用方法

相关推荐