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绑定class的三种方法
Dec 24 Vue.js
深入了解Vue动态组件和异步组件
Jan 26 Vue.js
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
Feb 26 Vue.js
vue3.0中使用element的完整步骤
Mar 04 Vue.js
深入理解Vue的数据响应式
May 15 Vue.js
vue+springboot实现登录验证码
May 27 Vue.js
使用Vue3+Vant组件实现App搜索历史记录功能(示例代码)
Jun 09 Vue.js
vue3中provide && inject的使用
Jul 01 Vue.js
vue判断按钮是否可以点击
Apr 09 Vue.js
vue route新窗口跳转页面并且携带与接收参数
Apr 10 Vue.js
vue使用watch监听属性变化
Apr 30 Vue.js
vue css 相对路径导入问题级踩坑记录
Jun 05 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调用Oracle存储过程的方法
2008/09/12 PHP
php面向对象全攻略 (十二) 抽象方法和抽象类
2009/09/30 PHP
PHP验证码无法显示的原因及解决办法
2017/08/11 PHP
JS获取scrollHeight问题想到的标准问题
2007/05/27 Javascript
抽出www.templatemonster.com的鼠标悬停加载大图模板的代码
2007/07/11 Javascript
js跨域和ajax 跨域问题的实现思路
2009/09/05 Javascript
javascript 面向对象编程 聊聊对象的事
2009/09/17 Javascript
用JQuery调用Session的实现代码
2010/10/29 Javascript
js通过地址栏给action传值(中文乱码全是问号)
2013/05/02 Javascript
完美解决AJAX跨域问题
2013/11/01 Javascript
导入extjs、jquery 文件时$使用冲突问题解决方法
2014/01/14 Javascript
Vue 过渡(动画)transition组件案例详解
2017/01/22 Javascript
JavaScript面试出现频繁的一些易错点整理
2018/03/29 Javascript
NodeJS加密解密及node-rsa加密解密用法详解
2018/10/12 NodeJs
pymongo实现控制mongodb中数字字段做加法的方法
2015/03/26 Python
Python程序员面试题 你必须提前准备!
2018/01/16 Python
Python实现计算字符串中出现次数最多的字符示例
2019/01/21 Python
Pyecharts绘制全球流向图的示例代码
2020/01/08 Python
Python实现随机生成任意数量车牌号
2020/01/21 Python
浅谈python多线程和多线程变量共享问题介绍
2020/04/17 Python
13个Pandas实用技巧,助你提高开发效率
2020/08/19 Python
python 元组和列表的区别
2020/12/30 Python
传统HTML页面实现模块化加载的方法
2018/10/15 HTML / CSS
详解淘宝H5 sign加密算法
2020/08/25 HTML / CSS
Kusmi茶美国官网:优质散叶茶和茶包
2019/10/13 全球购物
室内设计实习自我鉴定
2013/09/25 职场文书
2015届大学生就业推荐表自我评价
2014/09/27 职场文书
2014红色之旅心得体会
2014/10/07 职场文书
群众路线教育实践活动调研报告
2014/11/03 职场文书
个人先进事迹总结
2015/02/26 职场文书
2015年卫生监督工作总结
2015/05/21 职场文书
单位工作证明范本
2015/06/15 职场文书
中学生打架《检讨书》范文
2019/08/12 职场文书
Apache压力测试工具的安装使用
2021/03/31 Servers
Oracle11g r2 卸载干净重装的详细教程(亲测有效已重装过)
2021/06/04 Oracle
java获取一个文本文件的编码(格式)信息
2022/09/23 Java/Android