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 router传递参数并解决刷新页面参数丢失问题
Dec 02 Vue.js
vue添加自定义右键菜单的完整实例
Dec 08 Vue.js
Vue实现简易购物车页面
Dec 30 Vue.js
Vue实现简单计算器
Jan 20 Vue.js
vue仿携程轮播图效果(滑动轮播,下方高度自适应)
Feb 11 Vue.js
Vue多选列表组件深入详解
Mar 02 Vue.js
vue3.0封装轮播图组件的步骤
Mar 04 Vue.js
如何使用vue3打造一个物料库
May 08 Vue.js
vue中 this.$set的使用详解
Nov 17 Vue.js
vue中div禁止点击事件的实现
Apr 02 Vue.js
vue代码分块和懒加载非必要资源文件
Apr 11 Vue.js
Vue2项目中对百度地图的封装使用详解
Jun 16 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数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
2011/10/29 PHP
探讨方法的重写(覆载)详解
2013/06/08 PHP
PHP获取服务器端信息的方法
2014/11/28 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
2019/06/12 PHP
什么是DOM(Document Object Model)文档对象模型
2012/03/05 Javascript
javascript 正则表达式相关应介绍
2012/11/27 Javascript
浅析Js中的单引号与双引号问题
2013/11/06 Javascript
jquery选择checked在ie8普通模式下的问题
2014/02/12 Javascript
javascript的数组和常用函数详解
2014/05/09 Javascript
js限制input标签中只能输入中文
2015/06/26 Javascript
浅谈Javascript实现继承的方法
2015/07/06 Javascript
jQuery height()、innerHeight()、outerHeight()函数的区别详解
2016/05/23 Javascript
three.js快速入门【推荐】
2017/01/21 Javascript
jquery仿苹果的时间/日期选择效果
2017/03/08 Javascript
关于Stream和Buffer的相互转换详解
2017/07/26 Javascript
vue使用vue-cli快速创建工程
2017/07/28 Javascript
浅谈关于angularJs中使用$.ajax的注意点
2017/08/12 Javascript
select自定义小三角样式代码(实用总结)
2017/08/18 Javascript
原生JS实现旋转轮播图+文字内容切换效果【附源码】
2018/09/29 Javascript
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
Servlet返回的数据js解析2种方法
2019/12/12 Javascript
Vue如何基于vue-i18n实现多国语言兼容
2020/07/17 Javascript
python Django连接MySQL数据库做增删改查
2013/11/07 Python
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
2018/02/21 Python
对numpy 数组和矩阵的乘法的进一步理解
2018/04/04 Python
Django框架自定义session处理操作示例
2019/05/27 Python
基于python3 的百度图片下载器的实现代码
2019/11/05 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
python绘制玫瑰的实现代码
2020/03/02 Python
Pandas对每个分组应用apply函数的实现
2020/12/13 Python
英国领先的杂志订阅网站:Magazine.co.uk
2018/01/25 全球购物
日本最大的彩色隐形眼镜销售网站:CharmColor
2020/09/09 全球购物
创业计划书撰写原则
2014/01/25 职场文书
新年爱情寄语
2014/04/08 职场文书
男性健康日的活动方案
2014/08/18 职场文书
基层干部个人对照检查及整改措施
2014/10/28 职场文书