如何将百度地图包装成Vue的组件的方法步骤


Posted in Javascript onFebruary 12, 2019

(1)在index.html文件中引入百度地图

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

如何将百度地图包装成Vue的组件的方法步骤

(2)在webpack.base.conf.js文件内添加external选项,在module.exports内部,和entry平级;

externals: {
  "BMap": "BMap" 

},

如何将百度地图包装成Vue的组件的方法步骤

(3)添加地图组件BMapComponent.vue,这里主要注意两点:

a)使用BMap的时候需要import (经过本人测试,如果不用import会提示BMap未定义)

如何将百度地图包装成Vue的组件的方法步骤    

b)注意一定要给bmap的div设置高度,否则会看不见

该组件的代码如下

<!-- 页面模版 -->
<template>
 <div>
  <!--header-->
  <com-header :title="headerData.title" :toLink="headerData.toLink"></com-header>
  <!--header end-->
 
  <!--container-->
  <div id="allmap" 
      style="
        width: 100%; 
        height:200px; 
        border: 1px solid gray;
        overflow:hidden;">
    </div>
  <!--container end-->
 </div>
</template>
<script>
import comHeader from 'components/comHeader'
import BMap from 'BMap'
export default {
 components: {
  comHeader
 },
 data: () => ({
  headerData: {
   title: '网点详情',
   toLink: '/SalesOutlets'
  }
 }),
 created () {
  // 组件创建完后获取数据,这里和1.0不一样,改成了这个样子
  this.loadMap()
  // this.ready() // 如果在此处直接调用this.ready()方法,将无法加载地图
 },
 mounted () {
  this.ready()
 },
 methods: {
  loadMap: function () {
   console.log(this.$route.params.name)
   console.log(this.$route.params.addr)
   console.log(this.$route.params.phone)
   // setTimeout(this.ready, 0)
  },
  ready: function () {
   var map = new BMap.Map('allmap')
   map.enableScrollWheelZoom(true)
   console.log(map)
 
   var localSearch = new BMap.LocalSearch(map)
   // localSearch.enableAutoViewport() // 允许自动调节窗体大小
   map.clearOverlays() // 清空原来的标注
   localSearch.setSearchCompleteCallback(function (searchResult) {
    var poi = searchResult.getPoi(0)
    map.centerAndZoom(poi.point, 20)
    var point = new BMap.Point(poi.point.lng, poi.point.lat)
    var marker = new BMap.Marker(point) // 创建标注,为要查询的地方对应的经纬度
    map.addOverlay(marker)
   })
   localSearch.search(this.$route.params.addr)
  }
 }
}
</script>
<style>
 /* 去掉地图左下角的百度LOGO */
 .anchorBL {
  display:none
 }
</style>

如果直接在实例生命周期的created中调用this.ready()方法将无法加载地图,我在index.html中加入了一个id为allmap的div,当我调用该组件时,该组件上的div没有显示地图,而index.html中id为allmap的div里却显示了地图,经过测试我猜测是因为该组件还没有初始化完毕,导致new BMap.Map('allmap')时实例化地图对象失败。所以应该在实例生命周期的mounted中调用this.ready()方法。

实例生命周期参见:https://cn.vuejs.org/v2/guide/instance.html

(4) 在父组件中使用
    a)引入 import BMapComponent from './components/BMapComponent.vue'
    b)在template中增加标签

<b-map-component></b-map-component>
     

如何将百度地图包装成Vue的组件的方法步骤

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
新浪中用来显示flash的函数
Apr 02 Javascript
javascript下IE与FF兼容函数收集
Sep 17 Javascript
用document.documentElement取代document.body的原因分析
Nov 12 Javascript
jquery dialog open后,服务器端控件失效的快速解决方法
Dec 19 Javascript
jQuery实现HTML5 placeholder效果实例
Dec 09 Javascript
jQuery中大家不太了解的几个方法
Mar 04 Javascript
JavaScript知识点总结(五)之Javascript中两个等于号(==)和三个等于号(===)的区别
May 31 Javascript
three.js实现围绕某物体旋转
Jan 25 Javascript
javascript显示动态时间的方法汇总
Jul 06 Javascript
微信小程序页面间跳转传参方式总结
Jun 13 Javascript
微信小程序 如何获取网络状态
Jul 26 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
Feb 05 Javascript
微信小程序websocket聊天室的实现示例代码
Feb 12 #Javascript
深入探讨JavaScript的最基本部分之执行上下文
Feb 12 #Javascript
图文详解vue框架安装步骤
Feb 12 #Javascript
详解vue组件中使用路由方法
Feb 12 #Javascript
说说Vue.js中的functional函数化组件的使用
Feb 12 #Javascript
详解Vue用cmd创建项目
Feb 12 #Javascript
谈谈JavaScript中super(props)的重要性
Feb 12 #Javascript
You might like
一个php作的文本留言本的例子(一)
2006/10/09 PHP
PHP中防止SQL注入方法详解
2014/12/25 PHP
php数据访问之增删改查操作
2016/05/09 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
js下获取div中的数据的原理分析
2010/04/07 Javascript
10个基于jQuery或JavaScript的WYSIWYG 编辑器整理
2010/05/06 Javascript
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
jquery 关于event.target使用的几点说明介绍
2013/04/26 Javascript
js获取系统的根路径实现介绍
2013/09/08 Javascript
JS截取字符串常用方法整理及使用示例
2013/10/18 Javascript
点击button获取text内容并改变样式的js实现
2014/09/09 Javascript
jQuery中选择器的基础使用教程
2016/05/23 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
2017/12/22 Javascript
vue进行图片的预加载watch用法实例讲解
2018/02/07 Javascript
vue-cli中的babel配置文件.babelrc实例详解
2018/02/22 Javascript
JS简易计算器实例讲解
2020/06/30 Javascript
详解js中的原型,原型对象,原型链
2020/07/16 Javascript
Python类的基础入门知识
2008/11/24 Python
python判断、获取一张图片主色调的2个实例
2014/04/10 Python
PYTHON压平嵌套列表的简单实现
2016/06/08 Python
对python-3-print重定向输出的几种方法总结
2018/05/11 Python
python实现批量修改图片格式和尺寸
2018/06/07 Python
Python单元测试模块doctest的具体使用
2020/02/10 Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
2020/03/25 Python
Python itertools.product方法代码实例
2020/03/27 Python
基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算
2020/08/05 Python
碧欧泉美国官网:Biotherm美国
2016/08/31 全球购物
Lookfantastic阿联酋官网:英国知名美妆护肤购物网站
2020/05/26 全球购物
店长岗位职责
2013/11/21 职场文书
优秀团队获奖感言
2014/02/19 职场文书
应届毕业生应聘自荐信范文
2014/02/26 职场文书
工程类专业自荐信范文
2014/03/09 职场文书
冬季安全检查方案
2014/05/23 职场文书
4s店销售经理岗位职责
2014/07/19 职场文书
装饰施工员岗位职责
2015/04/11 职场文书
2016幼儿园新学期寄语
2015/12/03 职场文书