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新手入门指导教程
Nov 18 Vue.js
详解Vue中的自定义指令
Dec 07 Vue.js
在vue中动态修改css其中一个属性值操作
Dec 07 Vue.js
vue中如何自定义右键菜单详解
Dec 08 Vue.js
Vue.js 带下拉选项的输入框(Textbox with Dropdown)组件
Apr 17 Vue.js
vue使用v-model进行跨组件绑定的基本实现方法
Apr 28 Vue.js
vue Element-ui表格实现树形结构表格
Jun 07 Vue.js
vue+echarts实现多条折线图
Mar 21 Vue.js
Vue.Draggable实现交换位置
Apr 07 Vue.js
vue/cli 配置动态代理无需重启服务的方法
May 20 Vue.js
vue3不同环境下实现配置代理
May 25 Vue.js
vue router 动态路由清除方式
May 25 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使用递归算法无限遍历数组示例
2017/01/13 PHP
HTML-CSS群中单选引发的“事件”
2007/03/05 Javascript
JQuery中判断一个元素下面是否有内容或者有某个标签的判断代码
2012/02/02 Javascript
javascript动态向网页中添加表格实现代码
2014/02/19 Javascript
jquery实现弹出层完美居中效果
2014/03/03 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
2014/06/03 Javascript
js实现jquery的offset()方法实例
2015/01/10 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
AngularJS入门之动画
2016/07/27 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
2016/10/14 Javascript
JavaScript中return用法示例
2016/11/29 Javascript
jQuery实现复选框的全选和反选
2017/02/02 Javascript
HTML5+jQuery实现搜索智能匹配功能
2017/03/24 jQuery
p5.js入门教程之小球动画示例代码
2018/03/15 Javascript
vue better scroll 无法滚动的解决方法
2018/06/07 Javascript
layui table 参数设置方法
2018/08/14 Javascript
微信小程序实现swiper切换卡内嵌滚动条不显示的方法示例
2018/12/20 Javascript
Vue 处理表单input单行文本框的实例代码
2019/05/09 Javascript
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
2019/08/06 Javascript
vue日历/日程提醒/html5本地缓存功能
2019/09/02 Javascript
Vue中通过vue-router实现命名视图的问题
2020/04/23 Javascript
Python编程中字符串和列表的基本知识讲解
2015/10/14 Python
python实现协同过滤推荐算法完整代码示例
2017/12/15 Python
浅谈python 中类属性共享的问题
2019/07/02 Python
如何使用Python实现斐波那契数列
2019/07/02 Python
win10环境下配置vscode python开发环境的教程详解
2019/10/16 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
2020/03/28 Python
使用pth文件添加Python环境变量方式
2020/05/26 Python
python编写softmax函数、交叉熵函数实例
2020/06/11 Python
python操作redis数据库的三种方法
2020/09/10 Python
计算机应用职专应届生求职信
2013/11/12 职场文书
电信专业毕业生推荐信
2013/11/18 职场文书
餐饮收银员岗位职责
2014/02/07 职场文书
见习报告格式范文
2014/11/08 职场文书
2015年加油站工作总结
2015/05/13 职场文书
《遗弃》开发商删推文要跑路?官方回应:还在开发
2022/04/03 其他游戏