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项目设置resolves.alias: '@'路径并适配webstorm
Dec 02 Vue.js
vue-calendar-component 封装多日期选择组件的实例代码
Dec 04 Vue.js
Vue 实现一个简单的鼠标拖拽滚动效果插件
Dec 10 Vue.js
vue使用exif获取图片旋转,压缩的示例代码
Dec 11 Vue.js
Vue实现小购物车功能
Dec 21 Vue.js
vue实现简易的双向数据绑定
Dec 29 Vue.js
vue组件的路由高亮问题解决方法
May 11 Vue.js
vue2实现provide inject传递响应式
May 21 Vue.js
vue Element-ui表格实现树形结构表格
Jun 07 Vue.js
详细聊聊vue中组件的props属性
Nov 02 Vue.js
一起来看看Vue的核心原理剖析
Mar 24 Vue.js
vue使用wavesurfer.js解决音频可视化播放问题
Apr 04 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 获取当前访问的url文件名的方法小结
2010/02/08 PHP
php的declare控制符和ticks教程(附示例)
2014/03/21 PHP
php ctype函数中文翻译和示例
2014/03/21 PHP
php开启openssl的方法
2014/05/15 PHP
YII Framework框架教程之安全方案详解
2016/03/14 PHP
使用JQUERY Tabs插件宿主IFRAMES
2010/01/01 Javascript
JavaScript内核之基本概念
2011/10/21 Javascript
了不起的node.js读书笔记之node.js中的特性
2014/12/22 Javascript
jquery实现滑屏大图定时收缩为小banner图片的广告代码
2015/09/02 Javascript
JS实现的打字机效果完整实例
2016/06/20 Javascript
javascript监听页面刷新和页面关闭事件方法详解
2017/01/09 Javascript
详解nodejs微信公众号开发——5.素材管理接口
2017/04/11 NodeJs
JS实现求数组起始项到终止项之和的方法【基于数组扩展函数】
2017/06/13 Javascript
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
2017/08/25 Javascript
es6学习之解构时应该注意的点
2017/08/29 Javascript
Angular 实现输入框中显示文章标签的实例代码
2018/11/07 Javascript
JavaScript实现与使用发布/订阅模式详解
2019/01/19 Javascript
利用打码兔和超人打码自封装的打码类分享
2014/03/16 Python
Python 装饰器深入理解
2017/03/16 Python
Python3学习urllib的使用方法示例
2017/11/29 Python
Python统计单词出现的次数
2018/04/04 Python
TensorFlow实现模型评估
2018/09/07 Python
对python周期性定时器的示例详解
2019/02/19 Python
python环境路径配置以及命令行运行脚本
2019/04/02 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
Django框架 查询Extra功能实现解析
2019/09/04 Python
解决Python二维数组赋值问题
2019/11/28 Python
pycharm激活码有效到2020年11月底
2020/09/18 Python
python+selenium 脚本实现每天自动登记的思路详解
2020/03/11 Python
python/golang实现循环链表的示例代码
2020/09/14 Python
信用社主任竞聘演讲稿
2014/05/23 职场文书
应急管理培训方案
2014/06/12 职场文书
商铺门前三包责任书
2014/07/25 职场文书
乡镇八一建军节活动方案
2014/08/24 职场文书
工程部文员岗位职责
2015/02/04 职场文书
Mysql基础知识点汇总
2021/05/26 MySQL