美文网首页
vue中使用百度地图

vue中使用百度地图

作者: Do_Du | 来源:发表于2020-05-21 15:26 被阅读0次

ak 是在百度地图开发者平台申请的密钥 详见 http://lbsyun.baidu.com/apiconsole/key
vue官网地址:https://dafrok.github.io/vue-baidu-map/#/zh/index

一、安装

npm install vue-baidu-map --save

二、全局注册

main.js中一次性引入百度地图组件库的所有组件

import BaiduMap from 'vue-baidu-map'
Vue.use(BaiduMap, {
  ak: 注册的ak密钥
})

三、使用

全局注册的地图组件,可以在任意vue中使用

<baidu-map class="bm-view">
</baidu-map>

<style>
.bm-view {
width: 100%;
height: 300px;
}
</style>

项目经验

给地图加点击事件【 @click="getPoint"】,点击地图获取位置相关的信息,经纬度地址等
scroll-wheel-zoom:是否可以用鼠标滚轮控制地图缩放
zoom是视图比例
< bm-local-search :keyword="keyword"> 这个值被赋值就可以定位

 <el-input v-model="temp.address" placeholder="请输入地址来直接查找相关位置" clearable />
 <el-button class="confirm" @click="searchSite">定位</el-button>

<baidu-map :center="center" :zoom="15" :scroll-wheel-zoom="true" @click="getPoint" >
    <bm-view class="map" />
    <bm-local-search :keyword="keyword" :auto-viewport="true" :location="location" style="width:0px;height:0px;overflow: hidden;" />
</baidu-map>
  temp: {
    address: '',
    lat:'',
    lng: ''
  },
  center: {
    lng: 118.049911,
    lat: 24.49664
  },
  location: '厦门市',
  keyword: '', // 地图搜索关键字

  getPoint(e) { // 地图点击事件 =》获取经纬度
      this.temp.lng = e.point.lng
      this.temp.lat = e.point.lat
      /* global BMap */
      const geocoder = new BMap.Geocoder() // 创建地址解析器的实例
      geocoder.getLocation(e.point, rs => { // 当前位置定位
        // const province = rs.addressComponents.province // 省
        // const city = rs.addressComponents.city // 城市
        // const district = rs.addressComponents.district // 区县
        // const street = rs.addressComponents.street // 街道
        // const streetNumber = rs.addressComponents.streetNumber// 门牌号
        // this.temp.address = province + city + district + street + streetNumber // 组装成地址
        this.temp.address = rs.address

        // console.log(rs.surroundingPois) // 附近的POI点(array) POI:兴趣点 可以是一栋房子、一个商铺、一个邮筒、一个公交站
        // console.log(rs.business) // 商圈字段,代表此点所属的商圈(string)
      })
    },

  searchSite() { // 定位
      this.keyword = this.temp.address
      console.log(this.keyword)
   },

相关文章

网友评论

      本文标题:vue中使用百度地图

      本文链接:https://www.haomeiwen.com/subject/hmnzohtx.html