VUE使用百度地图并显示指定地点信息

本文介绍如何在Vue项目中集成百度地图API,包括安装依赖、配置密钥及使用标记点、信息窗体等组件的方法。

先看看效果图:

 一、安装相关依赖

npm i --save vue-baidu-map

 二、在main.js中引用

import BaiduMap from "vue-baidu-map"
Vue.use(BaiduMap,{
  ak: '你的密钥(百度地图开放API官网可免费申请)'
})

 百度地图API密钥申请过程可以看这个网址:百度地图API密钥申请_小梁故事会的博客-优快云博客_百度地图api密钥

三、主体代码

<template>
  <div class="index">
    <div class="map">
      <baidu-map class="map" :center="{lng: 114.446614, lat: 23.058246}" :zoom="15">
        <bm-marker :position="{lng: 114.446614, lat: 23.058246}" :dragging="true" animation="BMAP_ANIMATION_BOUNCE">

        </bm-marker>
        <bm-info-window :position="{lng: 114.44671, lat: 23.058912}" :width="250" :height="70" title="XXX科技有限公司"
          :show="infoWindow.show" @close="infoWindowClose" @open="infoWindowOpen">
          <p v-text="infoWindow.contents"></p>
        </bm-info-window>
        <bm-navigation anchor="BMAP_ANCHOR_TOP_RIGHT"></bm-navigation>
      </baidu-map>
    </div>
  </div>
</template>

其中

bm-marker是红色坐标点,对应坐标值,不需要可以删除

bm-info-window 是窗口信息,对应坐标值,不需要可以删除

 bm-navigation 是右侧缩小放大工具

<script>
export default {
  data() {
    return {
      infoWindow: {
        show: true,
        contents: '惠州市惠城区XXXX'
      }
    }
  },

  methods: {
    infoWindowClose(e) {
      this.infoWindow.show = false
    },
    infoWindowOpen(e) {
      this.infoWindow.show = true
    },

  }
}
</script>
<style scoped>
.index {
 
}
 .map {
    width: 100%;
    height: 400px;

    p {
      width: 300px;
    }
  }
</style>

具体需要哪个位置坐标可以在百度地图上拾取:拾取坐标系统

新坐标代替上文中的114.446614,  23.058246 即可 

详情可以看百度官方API文档:Vue Baidu Map

Vue使用百度地图API显示指定位置进行信息标注通常涉及以下几个步骤: 1. **安装依赖**: 首先需要在项目中安装`@vue/baidu-map`库,可以使用npm或yarn命令: ```bash npm install @vue/baidu-map --save # 或者 yarn add @vue/baidu-map ``` 2. **引入和注册组件**: 在main.js或相关配置文件中引入全局注册BMap组件: ```javascript import BMap from '@vue/baidu-map' Vue.component('bmap', BMap) ``` 3. **创建组件模板**: 创建一个新的Vue组件,例如`LocationInfo.vue`,然后在其中添加BMap地图元素以及初始化地图和标注: ```html <template> <div> <bmap :center="mapCenter" :zoom="zoomLevel"> <bmap-marker v-model="marker" position="{{ marker.position }}" draggable="true"> <bmap-info-window :visible.sync="infoWindowVisible" :offset="-50,-30"> <strong>地点名称</strong> 地址描述... </bmap-info-window> </bmap-marker> </bmap> </div> </template> <script> export default { data() { return { mapCenter: {lng: 116.404, lat: 39.915}, // 指定初始地理位置 zoomLevel: 12, marker: {}, // 标注实例 infoWindowVisible: false, // 信息窗是否可见 }; }, methods: { updateMarkerPosition(e) { this.marker.position = e.point; } }, }; </script> ``` 4. **事件监听和数据绑定**: 添加地图点击事件监听,当用户点击地图时更新标注位置信息窗口展示内容: ```javascript mounted() { this.map = this.$refs.bmap.getMap(); this.map.addEventListener('click', (e) => { this.updateMarkerPosition(e); this.infoWindowVisible = true; // 显示信息窗口 }); }, methods: { ... // 上面已经包含updateMarkerPosition方法 } ``` 5. **调用API进行位置展示**: 如果有实时位置数据,可以在适当的时候设置`mapCenter`和更新`marker`的位置。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值