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+iview实现分页及查询功能
Nov 17 Vue.js
vue+iview实现文件上传
Nov 17 Vue.js
springboot+vue实现文件上传下载
Nov 17 Vue.js
Vue实现购物小球抛物线的方法实例
Nov 22 Vue.js
Vue使用Element实现增删改查+打包的步骤
Nov 25 Vue.js
Vue实现指令式动态追加小球动画组件的步骤
Dec 18 Vue.js
Vue实现手机号、验证码登录(60s禁用倒计时)
Dec 19 Vue.js
Vue实现小购物车功能
Dec 21 Vue.js
vue使用echarts画组织结构图
Feb 06 Vue.js
Vue包大小优化的实现(从1.72M到94K)
Feb 18 Vue.js
springboot+VUE实现登录注册
May 27 Vue.js
Vue Mint UI mt-swipe的使用方式
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验证是否是md5编码的简单代码
2014/04/01 PHP
PHP实现的比较完善的购物车类
2014/12/02 PHP
php图片的二进制转换实现方法
2014/12/15 PHP
php三元运算符知识汇总
2015/07/02 PHP
WordPress中用于检索模版的相关PHP函数使用解析
2015/12/15 PHP
yii去掉必填项中星号的方法
2015/12/28 PHP
详解YII关联查询
2016/01/10 PHP
javascript下查找父节点的简单方法
2007/08/13 Javascript
基于jquery的无缝循环新闻列表插件
2011/03/07 Javascript
简单的jquery拖拽排序效果实现代码
2011/09/20 Javascript
js清理Word格式示例代码
2014/02/13 Javascript
利用Keydown事件阻止用户输入实现代码
2014/03/11 Javascript
JS简单操作select和dropdownlist实例
2014/11/26 Javascript
JavaScript数据类型之基本类型和引用类型的值
2015/04/01 Javascript
初步使用Node连接Mysql数据库
2016/03/03 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
2016/12/26 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
vue.js实现点击后动态添加class及删除同级class的实现代码
2018/04/04 Javascript
JavaScript键盘事件响应顺序详解
2019/09/30 Javascript
layui 弹出层值回传解决方式
2019/11/14 Javascript
Vue实现简单计算器
2021/01/20 Vue.js
python基于queue和threading实现多线程下载实例
2014/10/08 Python
python3如何将docx转换成pdf文件
2018/03/23 Python
Python实现基于socket的udp传输与接收功能详解
2019/11/15 Python
浅谈Python 参数与变量
2020/06/20 Python
python 实现压缩和解压缩的示例
2020/09/22 Python
python中pickle模块浅析
2020/12/29 Python
CSS3按钮鼠标悬浮实现光圈效果源码
2016/09/11 HTML / CSS
解决H5的a标签的download属性下载service上的文件出现跨域问题
2019/07/16 HTML / CSS
html5 乒乓球(碰撞检测)实例二
2013/07/25 HTML / CSS
美国一家全面的在线零售鞋类公司:SHOEBACCA
2017/01/06 全球购物
同步和异步有何异同,在什么情况下分别使用他们
2013/04/09 面试题
入股合作协议书
2014/10/12 职场文书
地陪导游欢迎词
2015/01/26 职场文书
小平您好观后感
2015/06/09 职场文书
家庭教育培训学习心得体会
2016/01/14 职场文书