vue整合百度地图显示指定地点信息


Posted in Vue.js onApril 06, 2022

先看看效果图

vue整合百度地图显示指定地点信息

一、安装相关依赖

npm i --save vue-baidu-map

二、在main.js中引用

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

三、创建地图工具 map.js

export function MP(ak) {  
    return new Promise(function (resolve, reject) {  
      window.init = function () {  
        resolve(BMap)  
      }  
      var script = document.createElement("script");  
      script.type = "text/javascript";  
      script.src = "http://api.map.baidu.com/api?v=2.0&ak="+"你的密钥"+"&callback=init";  
      script.onerror = reject;  
      document.head.appendChild(script);  
    })  
  }  

在需要用到地图的文件引入该工具

import { MP } from "@/utils/map.js";

四、绘制地图

1、创建一个容器展示地图,给容器指定一个id,根据页面的具体需求指定容器的宽和高

<div class="map">
    <div id="container" style="height: 300px; width: 100%" ref="allmap"></div>
</div>

2、在data中定义需要用到的数据

data() {
    return {
        dialogMap: false,
    mapPointName: "",
    mapGetshow: true
    }
}

3、定义全局的map地图对象和geocoder地理编码对象

var map;
let geoc = null;

4、创建一个定位地点的方法,添加要展示的地点的名称,此处也可动态指定

mapNameChange() {
      let that = this,
        point,
        marker = null;
      let local = new BMap.LocalSearch(map, {
        renderOptions: { map: map },
        onSearchComplete: (res) => {
          if (local.getResults() != undefined) {
            map.clearOverlays(); //清除地图上所有覆盖物
            if (local.getResults().getPoi(0)) {
              point = local.getResults().getPoi(0).point; //获取第一个智能搜索的结果
              map.centerAndZoom(point, 10);
              marker = new BMap.Marker(point); // 创建标注
              map.addOverlay(marker); // 将标注添加到地图中
              marker.enableDragging(); // 可拖拽
              geoc.getLocation(point, function (rs) {
                var addComp = rs.addressComponents;
                that.mapPointName =
                  addComp.province +
                  ", " +
                  addComp.city +
                  ", " +
                  addComp.district +
                  ", " +
                  addComp.street +
                  ", " +
                  addComp.streetNumber;
              });
            } else {
              console.log("未搜索到结果")
            }
          } else {
            alert("未搜索到结果");
          }
        },
      });
      local.search("岳阳楼"); //要展示的地点
    },

5、在mounted函数中调用上述方法并绘制地图

mounted() {
    this.$nextTick(function () {
      var _this = this;
      MP(_this.ak).then((BMap) => {
        let that = this;
        this.dialogMap = !this.dialogMap;
        if (that.mapGetshow) {
          map = new BMap.Map("container");    //存放地图容器的id
          geoc = new BMap.Geocoder();
          map.enableScrollWheelZoom();
        }
        _this.mapNameChange()    //调用定位地点的方法
      });
    });
  }

到此这篇关于vue整合百度地图显示指定地点信息的文章就介绍到这了,更多相关vue 百度地图显示地点内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
解决vue elementUI 使用el-select 时 change事件的触发问题
Nov 17 Vue.js
springboot+vue实现文件上传下载
Nov 17 Vue.js
详解Vue中的自定义指令
Dec 07 Vue.js
vue实现登录功能
Dec 31 Vue.js
vue中activated的用法
Jan 03 Vue.js
vue3.0中友好使用antdv示例详解
Jan 05 Vue.js
原生JS封装vue Tab切换效果
Apr 28 Vue.js
Vue3.0写自定义指令的简单步骤记录
Jun 27 Vue.js
Vue鼠标滚轮滚动切换路由效果的实现方法
Aug 04 Vue.js
vue特效之翻牌动画
Apr 20 Vue.js
vue实现简易音乐播放器
Aug 14 Vue.js
vue中使用mockjs配置和使用方式
VUE使用draggable实现组件拖拽
Apr 06 #Vue.js
教你部署vue项目到docker
vue使用wavesurfer.js解决音频可视化播放问题
Apr 04 #Vue.js
vue中div禁止点击事件的实现
Apr 02 #Vue.js
Vue组件更新数据v-model不生效的解决
Apr 02 #Vue.js
Vue+TypeScript中处理computed方式
Apr 02 #Vue.js
You might like
php fckeditor 调用的函数
2009/06/21 PHP
PHP实现原生态图片上传封装类方法
2016/11/08 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
2019/12/12 PHP
客户端静态页面玩分页
2006/06/26 Javascript
javascript实现unicode和字符的互相转换
2007/07/18 Javascript
js 自定义的联动下拉框
2010/02/07 Javascript
javaScript中两个等于号和三个等于号之间的区别介绍
2014/06/27 Javascript
jquery.gridrotator实现响应式图片展示画廊效果
2015/06/23 Javascript
图解Sublime Text3使用技巧
2015/12/21 Javascript
JavaScript必知必会(六) delete in instanceof
2016/06/08 Javascript
Angular设置title信息解决SEO方面存在问题
2016/08/19 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
2016/09/19 Javascript
微信小程序 Image API实例详解
2016/09/30 Javascript
Javascript es7中比较实用的两个方法示例
2017/07/21 Javascript
基于JavaScript实现评论框展开和隐藏功能
2017/08/25 Javascript
使用pm2自动化部署node项目的方法步骤
2019/01/28 Javascript
前端深入理解Typescript泛型概念
2020/03/09 Javascript
VUE项目axios请求头更改Content-Type操作
2020/07/24 Javascript
vue data有值,但是页面{{}} 取不到值的解决
2020/11/09 Javascript
深入解析Python编程中super关键字的用法
2016/06/24 Python
Python基于list的append和pop方法实现堆栈与队列功能示例
2017/07/24 Python
python操作MySQL 模拟简单银行转账操作
2017/09/27 Python
python使用pandas实现数据分割实例代码
2018/01/25 Python
Python实现识别图片内容的方法分析
2018/07/11 Python
Face++ API实现手势识别系统设计
2018/11/21 Python
解决Python列表字符不区分大小写的问题
2019/12/19 Python
PyQt5 控件字体样式等设置的实现
2020/05/13 Python
Speedo速比涛中国官方网站:全球领先泳装运动品牌
2018/04/24 全球购物
Myprotein中国网站:欧洲畅销运动营养品牌
2021/02/11 全球购物
请用Java实现列出某个目录下的所有文件
2013/09/23 面试题
顶撞领导检讨书
2014/01/29 职场文书
生物技术专业求职信
2014/06/10 职场文书
关于旅游的活动方案
2014/08/15 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
蜗居观后感
2015/06/11 职场文书
《红领巾真好》教学反思
2016/02/16 职场文书