Vue系列:如何将百度地图包装成Vue的组件

主要分解为如下步骤:

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

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

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

externals: {

"BMap": "BMap"

},

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

a)使用BMap的时候不需要import了,import反而会报错

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

该组件的代码如下

  1. <template>
  2. <!-- <div id="allmap" style="width: 100%; height: {{mapHeight}}px"></div> -->
  3. <!-- <div id="allmap" :style="{width: ‘100%‘, height: mapHeight + ‘px‘}"></div> -->
  4. <div id="allmap" v-bind:style="mapStyle"></div>
  5. </template>
  6. <script>
  7. export default {
  8. data: function() {
  9. return {
  10. mapStyle: {
  11. width: ‘100%‘,
  12. height: this.mapHeight + ‘px‘
  13. }
  14. }
  15. },
  16. props:{
  17. // 地图在该视图上的高度
  18. mapHeight:{
  19. type: Number,
  20. default: 500
  21. },
  22. // 经度
  23. longitude: {
  24. type:Number,
  25. default: 116.404
  26. },
  27. // 纬度
  28. latitude: {
  29. type:Number,
  30. default:39.915
  31. },
  32. description:{
  33. type:String,
  34. default:‘天安门‘
  35. }
  36. },
  37. ready: function(){
  38. var map = new BMap.Map("allmap");
  39. var point = new BMap.Point(this.longitude, this.latitude);
  40. var marker = new BMap.Marker(point);
  41. map.addOverlay(marker);
  42. map.centerAndZoom(point, 15);
  43. // 信息窗的配置信息
  44. var opts = {
  45. width : 250,
  46. height: 75,
  47. title : "地址:" ,
  48. }
  49. var infoWindow = new BMap.InfoWindow(this.description, opts); // 创建信息窗口对象
  50. marker.addEventListener("click", function(){
  51. map.openInfoWindow(infoWindow,point);
  52. });
  53. map.enableScrollWheelZoom(true);
  54. map.openInfoWindow(infoWindow,point); //开启信息窗口
  55. }
  56. }
  57. </script>
  58. <!-- Add "scoped" attribute to limit CSS to this component only -->
  59. <style scoped>
  60. </style>

(4) 在父组件中使用

a)引入 import BMapComponent from ‘./components/BMapComponent.vue‘

b)在template中增加标签

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

注意这里标签的命名,在vue文档中有说:http://vuejs.org.cn/guide/components.html#资源命名约定

来自为知笔记(Wiz)

时间: 2024-07-28 15:18:24

Vue系列:如何将百度地图包装成Vue的组件的相关文章

Vue2.0与 [百度地图] 结合使用———vue+webpack+axios+百度地图实现组件之间的通信

Vue2.0与 [百度地图] 结合使用: 1.vue init webpack-simple vue-baidu-map 2.下载axios cnpm install axios; 3.在main.js中引入axios,并使用 import axios from 'axios' /* 把axios对象挂到Vue实例上面,其他组件在使用axios的时候直接 this.$http就可以了 */ Vue.prototype.$http = axios; 4.引入百度地图的js秘钥--->最好在inde

JS调用百度地图拼接成路径,C#保存地图图片到本地

昨日公司要求做一个静态百度地图图片生成到本地的功能,以前没做过,这次小小总结一下 百度地图API自己看(http://developer.baidu.com/map/index.php?title=static) 当然首先得调用百度地图API,无非就是前台后台,,我是用JS写的,(http://www.cnblogs.com/kulong995/p/3368048.html)这个人写的不错,是用c#写的调用百度地图,写的很不错,可以看看 百度地图是由一堆乱七八糟的数据拼接出来的路径,然而保存图片

微信小程序--百度地图坐标转换成腾讯地图坐标

最近开发小程序时出现一个问题,后台程序坐标采用的时百度地图的坐标,因为小程序地图时采用的腾讯地图的坐标系,两种坐标有一定的误差,导致位置信息显示不正确.现在需要一个可以转换两种坐标的方法,经过查询发现腾讯地图提供了一个接口用来将多种坐标类型转换成腾讯可用的坐标. 方法如下: reverseGeocoder(options:Object) 本接口提供由坐标到坐标所在位置的文字描述的转换,输入坐标返回地理位置信息和附近poi列表. options参数属性说明: 如图上所示,只需要传递坐标时加上参数c

vue 项目模块化引入百度地图

1.1.安装百度地图依赖包 npm i vue-baidu-map --save 2.在src/main.js导入依赖包 import BaiduMap from 'vue-baidu-map' Vue.use(BaiduMap, { ak: 'YOUR_APP_KEY' //这个地方是官方提供的ak密钥}) 3.配置地图的基本信息,在我们需要的组件中引用 <!--百度地图--><baidu-map class="map" :center="{lng:121

vue系列1:如何定义一个基本的Vue代码结构

1.Node(后端)中的 MVC 与 前端中的 MVVM 之间的区别 MVC 是后端的分层开发概念: MVVM是前端视图层的概念,主要关注于 视图层分离,也就是说:MVVM把前端的视图层,分为了 三部分 Model, View , VM ViewModel 为什么有了MVC还要有MVVM <body> <!-- 将来 new 的Vue实例,会控制这个 元素中的所有内容 --> <!-- Vue 实例所控制的这个元素区域,就是我们的 V --> <div id=&q

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

Tip:本篇文章为案例分析,技术点较多,所以篇幅较长,认真阅览的你一定会学到很多知识. 前言:百度地图开放平台 给开发者们提供了丰富的地图功能与服务,使我们的项目中可以轻松地实现地图定位.地址搜索.路线导航等功能.本文给大家介绍如何在vue项目中引用百度地图,并设计实现简单的地图定位.地址搜索功能. 一.效果图及功能点 先来看一下效果图 效果图看不够? 点此 试试在线操作!(初次进入加载较慢,请耐心等待) 功能点: 挂载百度地图 封装逆地址解析函数(根据坐标点获取详细地址) 设置图像标注并绑定拖

java腾讯地图与百度地图坐标转换

/** * 坐标转换,腾讯地图转换成百度地图坐标 * @param lat 腾讯纬度 * @param lon 腾讯经度 * @return 返回结果:经度,纬度 */ public String map_tx2bd(double lat, double lon){ double bd_lat; double bd_lon; double x_pi=3.14159265358979324; double x = lon, y = lat; double z = Math.sqrt(x * x +

深入浅出百度地图API开发系列(1):前言

百度地图API目前在地图API领域越来越受到众多开发者的关注,许多应用都使用到了百度地图API服务,包括博主me,我自己使用做的是Javascript API,根据经验,我想整理出一份系列教程,如果能给想使用百度地图API的开发者带来一点帮助的话,那就太好了,也希望大家能够互相交流,共同学习. 写在前面的话:如果各位真的想深入了解地图的JSAPI,首先一些基础的GIS概念必不可少,GIS就是地理信息系统,可能很多程序猿没听过,简单地说,GIS就是通过计算机软件技术将地理信息进行可视化管理,地图就

vue、百度地图

点击页面中的位置,跳转到百度地图,并且根据经纬度定位到具体位置 打开   百度地图开放平台 | 百度地图API SDK | 地图开发   获取 密钥ak 页面中在位置的地方添加一个点击事件 <div class="lxdz_nr" @click = "baidu(116.442208,39.922129)"> //具体的经纬度,可以直接写在这里,也可以写给地址的位置 <p>xx公司</p> <p>北京市xxxxxx&l