当前位置: 首页 > news >正文

vue-baidu-map的基本使用

前言

公司项目需求引入百度地图,由于给的时间比较短,所以就用了已经封装好了的vue-baidu-map

一、vue-baidu-map是什么?

vue-baidu-map是基于vue.js封装的百度地图组件(官方文档)

二、使用步骤

1.下载插件

//我下载的版本
npm install vue-baidu-map@0.21.22

2. 引入

main.js

import BaiduMap from 'vue-baidu-map'Vue.use(BaiduMap, {// ak 是在百度地图开发者平台申请的密钥 详见 http://lbsyun.baidu.com/apiconsole/key */ak: 'YOUR_APP_KEY'
})

3.使用 

1.地图初始化

//center为初始定位  zoom是缩放  scroll-wheel-zoom是滚动  ready是初始化事件
//mapType是地图类型
<baidu-map :center="location" :zoom="zoom" :scroll-wheel-zoom="wheel" @ready="handler" style="width: 100%; height: 100%"  :mapClick="false" :mapType="mapType" id="map" @mouseout="mouseout" @mouseover="mouseover">
</baidu-map>export default {data() {return {location: { lng: 0, lat: 0 },zoom: 11,wheel: true,mapType: "",BMap: null,map: null,}
},
methods: {handler({ BMap, map }) {this.BMap = BMap;this.map = map;},mouseover(e) {this.wheel = true},mouseout(e) {this.wheel = false},}}

(注意:以下组件相关代码都需要放进<baidu-map></baidu-map>) 

2.地图图标

<bm-marker v-for="(marker, index) in points" :position="{ lng: marker.lng, lat: marker.lat }" :key="index":massClear="false" :dragging="false" :zIndex="9999" @click="marketClick">
<!--bm-label是图标的标记--><bm-label :content="marker.content" :position="{ lng: marker.lng, lat: marker.lat }" :labelStyle="{ background: 'rgba(0,0,0,.5)', color: '#fff', width: 'auto', border: 'none', fontSize: '16px' }" :offset="{ width: -20, height: 20 }"></bm-label>
<!--bm-info-window是点击图标显示弹窗-->
<bm-info-window :show="marker.isShow" :position="{ lng: marker.lng, lat: marker.lat }" :width="400" :height="280" :offset="{ width: -10, height: -30 }" @close="handleClose">   
</bm-info-window></bm-marker>export default {data() {return {points: [],}
},
methods: {marketClick(e) {//获取具体地址var geoc = new BMap.Geocoder();const that = thisgeoc.getLocation(e.target.point, function (rs) {
})}
}

3.地图搜索 

   <bm-control class="control"><bm-auto-complete :sugStyle="{ zIndex: 999999 }" v-model="keyword" ><el-input v-model="keyword" placeholder="搜地点,查范围" class="bmInput"><el-button slot="suffix" @click="confirmAddress">搜索</el-button></el-input></bm-auto-complete></bm-control><bm-local-search :keyword="keyword" :auto-viewport="true" @markersset="markersset" :panel="false"></bm-local-search>
export default {data() {return {keyword: null,}
},
methods: {confirmAddress() {this.map.centerAndZoom(new BMap.Point(this.localPoint.lng, this.localPoint.lat), 19);},markersset(res) {if (res.length != 0) {this.localPoint = {lng: res[0].point.lng,lat: res[0].point.lat}this.lng = 0this.lat = 0}this.map.clearOverlays()}}
}

4.地图面板覆盖物 

 <bm-control class="control1" anchor="BMAP_ANCHOR_TOP_RIGHT"><div class="panel"><div class="panelContent"><el-row><el-col :span="4" class="item"><span>路网:</span><el-checkbox v-model="net" @change="netChange" :disabled="disabled"></el-checkbox></el-col><el-col :span="4" class="item"><span>卫星:</span><el-switch v-model="circle" @change="circleChange"></el-switch></el-col></el-row></div></div></bm-control>data() {return {net:false,circle:false,disabled:true}
},
methods: {
//卫星circleChange(val) {if (val == true) {this.mapType = "BMAP_HYBRID_MAP"this.disabled = falsethis.net = true} else {this.mapType = "BMAP_NORMAL_MAP"this.disabled = truethis.net = false}},
//路网netChange(val) {if (val == true) {this.mapType = "BMAP_HYBRID_MAP"} else {this.mapType = "BMAP_SATELLITE_MAP"}},
}


总结

以上内容仅仅介绍了vue-baidu-map在我们公司项目中的一些应用,有其他需求可以去官网看看。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 快速构建串口调试工具
  • PyTorch使用------自动微分模块
  • kotlin—— withTimeoutOrNull的介绍和使用场景
  • js中正则表达式中【exec】用法深度解读
  • Linux相关概念和重要知识点(7)(git、冯诺依曼体系结构)
  • python爬虫:从12306网站获取火车站信息
  • YOLOv9改进策略【注意力机制篇】| CVPR2024 CAA上下文锚点注意力机制
  • neo4j(spring) 使用示例
  • 如何快速上手一个Github的开源项目
  • 【深度】为GPT-5而生的「草莓」模型!从快思考—慢思考到Self-play RL的强化学习框架
  • vue组件的生命周期
  • 常用集合(Set等)
  • CTF夺旗赛经验总结及落地实践,零基础入门到精通,收藏这一篇就够了
  • 跟着问题学12——GRU详解
  • 应用targetSdkVersion升级指导
  • 分享的文章《人生如棋》
  • 【comparator, comparable】小总结
  • chrome扩展demo1-小时钟
  • create-react-app做的留言板
  • HTTP--网络协议分层,http历史(二)
  • JAVA多线程机制解析-volatilesynchronized
  • Linux各目录及每个目录的详细介绍
  • magento2项目上线注意事项
  • Node + FFmpeg 实现Canvas动画导出视频
  • Python socket服务器端、客户端传送信息
  • Redis在Web项目中的应用与实践
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 后端_MYSQL
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • k8s使用glusterfs实现动态持久化存储
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • ​520就是要宠粉,你的心头书我买单
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​flutter 代码混淆
  • #pragma 指令
  • #数学建模# 线性规划问题的Matlab求解
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (第61天)多租户架构(CDB/PDB)
  • (二)Kafka离线安装 - Zookeeper下载及安装
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (十八)Flink CEP 详解
  • (一) springboot详细介绍
  • (转)详解PHP处理密码的几种方式
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .net dataexcel 脚本公式 函数源码
  • .NET delegate 委托 、 Event 事件,接口回调
  • .NET Framework 4.6.2改进了WPF和安全性
  • .NET开源项目介绍及资源推荐:数据持久层
  • .NET企业级应用架构设计系列之结尾篇
  • .py文件应该怎样打开?
  • @for /l %i in (1,1,10) do md %i 批处理自动建立目录
  • [ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116
  • [023-2].第2节:SpringBoot中接收参数相关注解