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防抖与节流
Nov 24 Vue.js
vue element-ul实现展开和收起功能的实例代码
Nov 25 Vue.js
vue祖孙组件之间的数据传递案例
Dec 07 Vue.js
vue 动态生成拓扑图的示例
Jan 03 Vue.js
vue中父子组件的参数传递和应用示例
Jan 04 Vue.js
vue 动态添加的路由页面刷新时失效的原因及解决方案
Feb 26 Vue.js
使用Vue.js和MJML创建响应式电子邮件
Mar 23 Vue.js
教你部署vue项目到docker
Apr 05 Vue.js
vue整合百度地图显示指定地点信息
Apr 06 Vue.js
vue中的可拖拽宽度div的实现示例
Apr 08 Vue.js
vue封装数字翻牌器
Apr 20 Vue.js
vue项目如何打包之项目打包优化(让打包的js文件变小)
Apr 30 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代码
2010/08/08 PHP
shell脚本作为保证PHP脚本不挂掉的守护进程实例分享
2013/07/15 PHP
php实现当前页面点击下载文件的实例代码
2016/11/16 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
2018/06/13 PHP
PHP CURL中传递cookie的方法步骤
2019/05/09 PHP
一文看懂PHP进程管理器php-fpm
2020/06/01 PHP
基于JQuery的类似新浪微博展示信息效果的代码
2012/07/23 Javascript
基于JQuery的一句话搞定手风琴菜单
2012/09/14 Javascript
JavaScript中“+”的陷阱深刻理解
2012/12/04 Javascript
Node.js中的事件驱动编程详解
2014/08/16 Javascript
JavaScript参数个数可变的函数举例说明
2014/10/10 Javascript
jQuery AjaxUpload 上传图片代码
2016/02/02 Javascript
理解javascript封装
2016/02/23 Javascript
JQuery统计input和textarea文字输入数量(代码分享)
2016/12/29 Javascript
JS判断键盘是否按的回车键并触发指定按钮点击操作的方法
2017/02/13 Javascript
js实现下拉框效果(select)
2017/03/28 Javascript
开发Vue树形组件的示例代码
2017/12/21 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
vue element-ui table表格滚动加载方法
2018/03/02 Javascript
Javascript的console['']常用输入方法汇总
2018/04/26 Javascript
JS获取本地地址及天气的方法实例小结
2019/05/10 Javascript
原生js实现无缝轮播图
2020/01/11 Javascript
使用python删除nginx缓存文件示例(python文件操作)
2014/03/26 Python
python实现AES加密解密
2019/03/28 Python
Python爬虫实现百度翻译功能过程详解
2020/05/29 Python
美国领先的奢侈手表在线零售商:WatchMaxx
2017/12/17 全球购物
雅虎笔试题(字符串操作)
2015/03/24 面试题
中文教师求职信
2014/02/22 职场文书
民族团结先进个人事迹材料
2014/06/02 职场文书
推普周活动总结
2014/08/28 职场文书
2014国庆节标语口号
2014/09/19 职场文书
2015重阳节座谈会主持词
2015/07/30 职场文书
2016年度优秀辅导员事迹材料
2016/02/26 职场文书
员工安全责任协议书
2016/03/22 职场文书
2016年青少年禁毒宣传教育活动总结(学校)
2016/04/05 职场文书
maven依赖的version声明控制方式
2022/01/18 Java/Android