解决vue中BMap未定义问题

解决vue中BMap未定义问题最近在项目中使用了百度地图来显示物流信息 实现方式有两种 引用 VueBaiduMap 引用 BMap 存在的问题 color red 存在的问题 存在的问题 1 使用 VueBaiduMap 不需要刷新页面即可显示地图 但是不知道如何修改起始点和终点的图标 2 使用 BMap 可以修改起始点和终点的图标 但是地图需要刷新页面才会显示 针对以上两个问题 问题 1 还未找到解决方案 大家如

最近在项目中使用了百度地图来显示物流信息,实现方式有两种:

  • 引用Vue Baidu Map
  • 引用BMap

存 在 的 问 题 : \color{red}{存在的问题:}
1、使用Vue Baidu Map不需要刷新页面即可显示地图,但是不知道如何修改起始点和终点的图标;
2、使用BMap可以修改起始点和终点的图标,但是地图需要刷新页面才会显示。
针对以上两个问题,问题1还未找到解决方案,大家如果有好的解决方案欢迎分享在下面哦。问题2的实现如下所示:






  • Vue文件中的代码
    <template> <div id="myMap"></div> </template> import qs from "qs"; export default { 
          mounted() { 
          this.getMap(); }, methods: { 
          // 绘制地图 getMap() { 
          var map = new BMap.Map("myMap"); map.enableScrollWheelZoom(true); //注意:下面的坐标值换为自己的动态值即可,我就不多说了 var start = new BMap.Point(this.startLng, this.startLat); var end = new BMap.Point(this.currentLng, this.currentLat); var p1 = new BMap.Point(this.currentLng, this.currentLat); //自定义图标 var startIcon = new BMap.Icon( require("../../assets/images/point.png"), //起点图片 new BMap.Size(25, 25) ); var currentIcon = new BMap.Icon( require("../../assets/images/car.png"), //物流车图片 new BMap.Size(25, 25) ); var endIcon = new BMap.Icon( require("../../assets/images/point.png"), //终点图片 new BMap.Size(25, 25) ); var driving = new BMap.DrivingRoute(map, { 
          renderOptions: { 
          map: map, autoViewport: true }, onMarkersSet: function(routes) { 
          //标注点完成回调 map.clearOverlays(); //删除点 var myStart = new BMap.Marker(start, { 
          icon: startIcon }); map.addOverlay(myStart); var myEnd = new BMap.Marker(end, { 
          icon: endIcon }); map.addOverlay(myEnd); var myP1 = new BMap.Marker(p1, { 
          icon: currentIcon }); map.addOverlay(myP1); } }); driving.search(start, end, { 
          waypoints: [p1] }); }, }; </script> 

    这样写之后浏览器会报BMap is undefined,解决方法如下:

  • 在项目根目录下建立Js文件(比如:map.js)
    export function MP(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); }) } 
  • 在App.vue中
    <script> import { 
          MP } from './map' //引入上面创建的map.js文件 export default { 
          name: 'app', data(){ 
          return { 
          ak: "这里是您的密钥", } }, async mounted(){ 
          await MP(this.ak); } } </script> 
  • 要使用的vue文件中
    mounted() { 
          // 解决BMap undefined this.$nextTick(() => { 
          var timer = setTimeout(() => { 
          this.getMap(); }, 500); }); }, 
  • 效果图
    在这里插入图片描述
    好啦,通过上面的代码刷新显示地图就解决啦,若大家有更好的方法欢迎分享在下面???,期待中…




版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213234.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午6:16
下一篇 2026年3月18日 下午6:17


相关推荐

  • 线程池介绍及创建线程池的4种方式是什么_程序可以创建几个线程池

    线程池介绍及创建线程池的4种方式是什么_程序可以创建几个线程池1.什么是线程池Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源…

    2022年10月1日
    5
  • 大数据可视化方法有哪些「建议收藏」

    大数据可视化方法有哪些「建议收藏」  随着计算机技术、物联网技术和现代智能终端技术的发展,大数据时代已经到来。大到企业、政府、媒体部门,小到个人,每天都在进行”读读”。各种各样的复杂数据和信息充斥着人们的眼球。这就需要一种有效的方法从海量信息中提取有用的信息,并能立即产生一定的相关结果,供决策者做出正确的决策。  数据可视化技术是指可视化技术在大数据方面的应用,将数据信息转化为视觉形式的过程,以此增强数据呈现的效果。用户…

    2022年6月3日
    39
  • idea插件开发指南_vip

    idea插件开发指南_vipIDEA最全实用插件(VIP典藏版)

    2025年9月12日
    19
  • netstat -an查看端口网络状态分析

    netstat -an查看端口网络状态分析1 前言 socket 建立连接的时候 服务器端需要 socket bind listen accept 其中 bind 需要绑定 ip 地址和端口号 accept 之后 会生成一个新的 socket 这个 socket 会对应一个新的端口号 客户端需要 socket connect 多个客户端可以同时去连接同一个服务器端 2 命令结果分析由上图可知 localAddress 是我们本地机 IP 后面跟着的是端口号 ForeignAddre 是与该主机连接的电脑 ip 后面跟着的是

    2026年3月26日
    2
  • 命令行mvn打包的时候报错:No compiler is provided in this environment. Perhaps you are running on a JRE

    命令行mvn打包的时候报错:No compiler is provided in this environment. Perhaps you are running on a JRE一 前言这部分是安装 Elasticsearc ik 中文分词的时候 用 mvn 打包报错 Nocompileris Perhapsyouar 在网上百度 大部分是讲解 IDE 的解决方案 但是我这边是用的命令行 有点坑爹 还是记录一下吧 二 解决过程 1 错

    2025年11月15日
    6
  • 床长人工智能教程 下载_人工智能

    床长人工智能教程 下载_人工智能目录请先点击下面查看序言序言1神经网络与深度学习1.1介绍神经网络1.1.1什么是神经网络1.1.2监督学习型神经网络1.1.3什么使深度学习火起来了1.2神经网络基础1.2.1如何将待预测数据输入到神经网络中1.2.2神经网络是如何进行预测的1.2.3神经网络如何判断自己预测得是否准确1

    2026年2月7日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号