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 相关文章推荐
快速解决vue2+vue-cli3项目ie兼容的问题
Nov 17 Vue.js
详解vue实现坐标拾取器功能示例
Nov 18 Vue.js
vue从后台渲染文章列表以及根据id跳转文章详情详解
Dec 14 Vue.js
如何在VUE中使用vue-awesome-swiper
Jan 04 Vue.js
vue实现按钮切换图片
Jan 20 Vue.js
手动实现vue2.0的双向数据绑定原理详解
Feb 06 Vue.js
vue中h5端打开app(判断是安卓还是苹果)
Feb 26 Vue.js
vue前端和Django后端如何查询一定时间段内的数据
Feb 28 Vue.js
如何理解Vue前后端数据交互与显示
May 10 Vue.js
Vue如何实现组件间通信
May 15 Vue.js
vue实现移动端div拖动效果
Mar 03 Vue.js
vue3使用vuedraggable实现拖拽功能
Apr 06 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 数组动态添加实现代码(最土团购系统的价格排序)
2011/12/30 PHP
PHP下使用CURL方式POST数据至API接口的代码
2013/02/14 PHP
thinkphp使用literal防止模板标签被解析的方法
2014/11/22 PHP
PHP Echo字符串的连接格式
2016/03/07 PHP
php实现生成code128条形码的方法详解
2017/07/19 PHP
初学JavaScript第二章
2008/09/30 Javascript
js实现页面打印功能实例代码(附去页眉页脚功能代码)
2009/12/15 Javascript
快速解决FusionCharts联动的中文乱码问题
2013/12/04 Javascript
jQuery中fadeOut()方法用法实例
2014/12/24 Javascript
js库Modernizr的介绍和使用
2015/05/07 Javascript
jquery插件Jplayer使用方法简析
2016/04/22 Javascript
js跨域资源共享 基础篇
2016/07/02 Javascript
JS轮播图中缓动函数的封装
2020/11/25 Javascript
基于Marquee.js插件实现的跑马灯效果示例
2017/01/25 Javascript
Vue.js原理分析之observer模块详解
2017/02/17 Javascript
微信小程序左滑删除效果的实现代码
2017/02/20 Javascript
利用C/C++编写node.js原生模块的方法教程
2017/07/07 Javascript
postman+json+springmvc测试批量添加实例
2018/03/31 Javascript
微信小程序实现获取小程序码和二维码java接口开发
2019/03/29 Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
2019/06/21 Javascript
vue3为什么要用proxy替代defineProperty
2020/10/19 Javascript
python中执行shell命令的几个方法小结
2014/09/18 Python
Python读写ini文件的方法
2015/05/28 Python
关于python的bottle框架跨域请求报错问题的处理方法
2017/03/19 Python
Python3列表内置方法大全及示例代码小结
2019/05/10 Python
python3+PyQt5 使用三种不同的简便项窗口部件显示数据的方法
2019/06/17 Python
python实现KNN分类算法
2019/10/16 Python
详解django中Template语言
2020/02/22 Python
Scrapy模拟登录赶集网的实现代码
2020/07/07 Python
详解在Python中使用Torchmoji将文本转换为表情符号
2020/07/27 Python
使用CSS3的rem属性制作响应式页面布局的要点解析
2016/05/24 HTML / CSS
CSS3自定义滚动条样式的示例代码
2017/08/21 HTML / CSS
Tory Burch德国官网:美国时尚生活品牌
2018/01/03 全球购物
医学检验专业个人求职信范文
2013/12/04 职场文书
促销活动总结报告
2014/04/26 职场文书
工作试用期自我评价
2015/03/10 职场文书