Vue中使用百度地图demo Vue Baidu Map(vue-baidu-map)设置窗口信息

简介: Vue中使用百度地图demo Vue Baidu Map(vue-baidu-map)设置窗口信息

1.全局引入

安装  npm install --save vue-baidu-map

1.2全局配置 在main.js中配置

 

效果图:

二.代码

<template>
  <div class="hello">
    <h1>{{ msg }}</h1>
    <!--百度地图-->
    <baidu-map
      class="bm-view"
      :center="center"
      :zoom="zoom"
      @ready="handler"
      :auto-resize="true"
      :scroll-wheel-zoom="true"
    >
      <bm-marker
        v-for="(item, index) in points"
        :key="index"
        :position="{ lng: item.lng, lat: item.lat }"
        @click="clickHandler(item.content,item.lng,item.lat)"
        :icon="item.icon"
      >
      </bm-marker>
      <bm-info-window
        :show="show"
        :position="windowposition"
        @close="infoWindowClose"
        @open="infoWindowOpen"
        >{{content}}</bm-info-window
      >
      <bm-polyline
        :path="points"
        stroke-style="dashed"
        stroke-color="blue"
        :stroke-opacity="0.3"
        :stroke-weight="1"
      ></bm-polyline>
      
    </baidu-map>
  </div>
</template>
<script>
export default {
  name: 'HelloWorld',
  data () {
    return {
      msg: 'Welcome to map',
      center: { lng: 112, lat: 37 },
      zoom: 14,
      points: [],
      windowposition: {},
      content: {},
      show: false,
      icon: { url: "http://api.map.baidu.com/library/LuShu/1.2/examples/car.png"},
    }
  },
    mounted() {
    this.addPoints();
  },
  methods: {
    //地图实例
    handler({ BMap, map }) {
      console.log(BMap, map);
      this.center.lng = 112.404;
      this.center.lat = 37.755;
      this.zoom = 10;
    },
    clickHandler(content,lng,lat) {
      // alert(`单击点的坐标为:${e.point.lng}, ${e.point.lat}`);
      this.windowposition = { lng: lng, lat: lat };
      this.content=content;
      this.show = true;
    },
    addPoints() {
      const points = [];
      for (var i = 0; i < 10; i++) {
        let icon = this.icon;
        const position = {
          lng: Math.random() + 112,
          lat: Math.random() + 37,
          content: "我爱北京天安门" + i,
          ico: icon,
        };
        points.push(position);
      }
      this.points = points;
      console.log("this.points", this.points);
    },
    infoWindowOpen() {
      this.show = true;
    },
    infoWindowClose() {
      this.show = false;
    },
  }
}
</script>
<style scoped>
.bm-view {
  width: 100%;
  height: 800px;
}
</style>

3.参考百度Vue Baidu Map

4.代码下载 代码下载

目录
相关文章
|
1月前
|
JavaScript
vue尚品汇商城项目-day07【52.打包文件,处理map文件】
vue尚品汇商城项目-day07【52.打包文件,处理map文件】
24 3
|
3月前
|
资源调度 JavaScript 定位技术
Vue2使用百度地图展示或搜索地点(vue-baidu-map)
本文介绍了如何在 Vue 项目中使用 `vue-baidu-map` 插件,包括安装、全局注册及具体应用。首先通过 `yarn add vue-baidu-map` 安装插件,并在 `main.js` 中全局注册。然后展示了如何在地图上显示特定位置的标记,以及如何搜索地点并获取其经纬度和详细地址信息。代码示例提供了详细的实现方法和样式调整。如需使用,请确保已获取百度地图 API 的密钥。
510 1
|
3月前
|
JavaScript 前端开发
Vue 系类之 this.tabledatas.map 无效
这篇文章讲述了在Vue项目中使用`this.tabledatas.map`处理接口返回的数组数据时遇到的问题,原因是由于取错了后端返回的数据集合字段值,导致`.map`方法无效,通过检查和修正数据取值解决了问题。
Vue 系类之 this.tabledatas.map 无效
|
3月前
|
JavaScript 前端开发
Vue中传递自定义参数到后端、后端获取数据(使用Map接收参数)
这篇文章讲述了如何在Vue中通过Axios二次封装传递自定义参数到后端,并展示了后端如何使用Map接收这些参数,以及如何避免参数转换错误和统一接口设计的方法。
|
4月前
|
JavaScript 定位技术
vue-baidu-map 绘制行政区划的轮廓,添加行政区划名称(含给覆盖物添加点击事件)——vue 百度地图开发
vue-baidu-map 绘制行政区划的轮廓,添加行政区划名称(含给覆盖物添加点击事件)——vue 百度地图开发
251 1
|
4月前
|
JavaScript 前端开发 定位技术
vue 使用 vue-jsonp 解决跨域请求问题(访问百度地图API)
vue 使用 vue-jsonp 解决跨域请求问题(访问百度地图API)
247 0
|
4月前
|
JavaScript 定位技术
vue 百度地图开发【教程】3. 自定义百度地图主题
vue 百度地图开发【教程】3. 自定义百度地图主题
164 0
|
4月前
|
JavaScript 定位技术
vue 百度地图开发【教程】1. 绘制百度地图(不使用 vue-baidu-map,解决 BMap is undefined)
vue 百度地图开发【教程】1. 绘制百度地图(不使用 vue-baidu-map,解决 BMap is undefined)
403 0
|
6月前
|
存储 Kubernetes 容器
百度搜索:蓝易云【Kubernetes使用helm部署NFS Provisioner】
现在,你已经成功使用Helm部署了NFS Provisioner,并且可以在Kubernetes中创建使用NFS存储的PersistentVolumeClaim。
205 10
|
6月前
百度搜索:蓝易云【什么是HTTP长轮询?】
现在,HTTP长轮询逐渐被WebSocket等更高效的实时通信技术所替代,但了解HTTP长轮询仍然有助于理解实时数据推送的基本原理。
128 9