这次老板新接了一个四点半官网页面,使用vue来写。emm……我感觉整个人都不好了,两天半解决了20个静态页面。还好vue写页面简直飞快,遇到一个vue的新坑,使用百度地图。

研究了好一会,总是报错BMap is not defined

我只有一个页面需要用到地图,所以我是使用cdn引入的方式来写的,并没有像网上一些教程一样使用npm引入安装。

直接简单粗暴的根据百度地图api来写,虽然报错。那就解决报错的bug就行了。好了,下面开始说说步骤

在需要页面的处引入cdn:

    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script>  

我的是在</template>标签结尾后引用的

在webpack配置里module.exports中加个externals:

module.exports = {
context: path.resolve(__dirname, '../'),
entry: {
// app: './src/main.js'
app: ["babel-polyfill", "./src/main.js"] //引入babel-polyfill 兼容IE
},
 externals: { "BMap": "BMap" },
}

此处依旧报错

接着,使用异步加载

新建一个map.js,里边的内容

export function map(ak) {
return new Promise(function (resolve, reject) {
window.onload = function () {
resolve(BMap)
}
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "http://api.map.baidu.com/api?v=2.0&ak=" ak "&callback=init";
script.onerror = reject;
document.head.appendChild(script);
})
}  

在需要页面import进来,

import {map} from '@/map.js'

最后挂载,在css上,记得设置地图盒子宽高,不然显示不出来

mounted () {
this.$nextTick(function(){
var _this = this;
MP(_this.ak).then(BMap => {
var map = new BMap.Map("allmap");
var point = new BMap.Point(经纬度,经纬度);
map.centerAndZoom(point, 19);
var marker = new BMap.Marker(point);  // 创建标注
map.addOverlay(marker);              // 将标注添加到地图中
var label = new BMap.Label("公司名字",{offset:new BMap.Size(20,-10)});
label.setStyle({
borderColor : "black"
});
//marker.addEventListener("click", function(){    //点击弹出可去掉注释
marker.setLabel(label); //开启信息窗口
//});  //点击弹出可去掉注释         

})
})
},

  百度地图生成器

  http://api.map.baidu.com/lbsapi/creatmap/index.html

百度地图拾取坐标系统
        http://api.map.baidu.com/lbsapi/getpoint/index.html

百度地图JavaScript API
        http://lbsyun.baidu.com/index.php?title=jspopular

之前写过一篇关于html上引用百度地图的博文:https://www.cnblogs.com/web1/p/8519987.html

  

更多专业前端知识,请上 【猿2048】www.mk2048.com

vue项目 调用百度地图 BMap is not defined相关推荐

  1. vue项目调用百度地图定位,判断当前位置是否在目标位置范围内

    之前用vue做了一个百度地图定位功能,判断是否当前位置在目标位置范围内的小功能,类似这样: 直接上代码 百度地图定位,设置目标位置范围,判断当前位置到目标位置的距离,BDMap.vue <tem ...

  2. vue项目调用百度地图api 学习总结

    一.安装百度地图插件: npm install vue-baidu-map –save 二.在vue项目首页index.html进入插件: 注:src里的http必须要写如果不写会出现bug! ! ! ...

  3. vue项目引入百度地图BMapGL鼠标绘制和BMap辅助工具

    目录 引言 1.引用百度地图 2.在项目中使用百度地图 2-1.页面结构部分 2-2.js逻辑部分 3-1.页面结构部分 Vue.js 是一个用于构建用户界面的渐进式 JavaScript 框架.它旨 ...

  4. vue中调用百度地图 获取经纬度

    项目中,需要实现获取当前位置的经纬度,或者搜索某个位置并获取经纬度信息,我使用的的是vue,地图使用的是百度地图. 默认自动获取当前位置经纬度 拖动小红标 获取经纬度 关键词 查询获取经纬度 前期准备 ...

  5. vue中调用百度地图实现搜索等功能

    vue中调用百度地图实现搜索等功能 在最近做电商项目时用户订单等物流信息想做的更加详细点所以加入了地图这个小功能,不是很难只是在一个未知的领域可能有点迷茫 现在也是体会到了,学新的东西还是得看官方文档 ...

  6. Vue项目使用百度地图——经纬度地图组件的封装及使用

    1 前言 要在vue项目使用百度地图api,首先应做以下配置 (1)index.html index.html添加script <script src="http://api.map. ...

  7. Vue项目引用百度地图并实现搜索定位等功能

    Tip:本篇文章为案例分析,技术点较多,所以篇幅较长,认真阅览的你一定会学到很多知识. 前言:百度地图开放平台 给开发者们提供了丰富的地图功能与服务,使我们的项目中可以轻松地实现地图定位.地址搜索.路 ...

  8. Vue项目中用百度地图实现城市定位

    说明:本文主要是介绍如何在Vue项目中接入百度地图并定位当前城市,更深层次的内容稍后有空整理. 可能还有更牛的实现方案,目前我这里记录的是我自己跑通的一个版本,希望对你有所帮助,仅供参考. Vue项目 ...

  9. Vue项目使用百度地图api

    目录 1.百度开发者认证 2.创建应用 3.引用百度地图API文件 4.展示地图 1.百度开发者认证 进入百度地图开放平台 官网,(认证需要身份证号码,人脸识别,手机百度APP,邮箱地址) 注册登录完 ...

最新文章

  1. spring secrity(二)
  2. 独占电脑装linux,旧电脑如何处理?装Tiny Core,极致精简,超低CPU占用,你敢试吗...
  3. C++之Lambda表达式
  4. Apache OpenOffice 下载量突破一亿次
  5. 【4】CCNA理论第三天
  6. 正则表达式(二)之元字符
  7. 解决办法一:GetProcAddress函数返回值总为NULL
  8. Python调用海康威视网络摄像头进行远程人脸识别
  9. 【实用软件工程】知识点
  10. EvoSuite生成单元测试用例
  11. python中的pip是什么_python中的pip是什么意思
  12. 安岷老师 精益生产管理专家
  13. 计算机高级筛选操作步骤,【EXCLE表格中根据特定的条件进行高级筛选】计算机excel高级筛选步骤...
  14. 人工智能3d建模算法_AI人工智能是否可以替代UI和后期3D建模?
  15. 可视化编程的一些资料
  16. Java并发异步编程,原来十个接口的活现在只需要一个接口就搞定!
  17. 人物-商界-杨惠妍:杨惠妍
  18. k8s初面考点ReplicaSet副本集极限9连击你懂了吗?
  19. Spark机器学习管道 - Pipeline
  20. 《精通CFD工程仿真与案例实战---FLUENT GAMBIT ICEM CFD Tecplot(第2版)》—— 导读...

热门文章

  1. 在软件开发的早期阶段为什么要进行可行性研究?
  2. 营销:产品卖点是核心营销方式
  3. mousewheel 取消_jquery mousewheel:检测车轮何时停止?
  4. Python中Tkinter 图形化界面设计(详细教程)
  5. 2021年中式烹调师(中级)考试技巧及中式烹调师(中级)模拟考试
  6. Win10《芒果TV》送7天免费会员,邀您抢先看萌心自制《妈妈是超人3》
  7. 详解曼孚科技SEED数据服务平台(2):自由标注模式
  8. protobuf-master :编译篇
  9. TYD深度学习入门 第一章
  10. 乔布斯:你为什么现在退休?