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+element_ui上传文件,并传递额外参数操作
Dec 05 Vue.js
Vue 实现一个简单的鼠标拖拽滚动效果插件
Dec 10 Vue.js
vue3.0自定义指令(drectives)知识点总结
Dec 27 Vue.js
Vuex实现简单购物车
Jan 10 Vue.js
vue组件是如何解析及渲染的?
Jan 13 Vue.js
如何在Vue项目中添加接口监听遮罩
Jan 25 Vue.js
Vue SPA 首屏优化方案
Feb 26 Vue.js
Vue多选列表组件深入详解
Mar 02 Vue.js
vue 中 get / delete 传递数组参数方法
Mar 23 Vue.js
Vue中插槽slot的使用方法与应用场景详析
Jun 08 Vue.js
Vue3.0写自定义指令的简单步骤记录
Jun 27 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
dedecms系统的广告设置代码 基础版本
2010/04/09 PHP
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
2014/03/25 PHP
微信获取用户地理位置信息的原理与步骤
2015/11/12 PHP
yii2项目实战之restful api授权验证详解
2017/05/20 PHP
JS保留两位小数 四舍五入函数的小例子
2013/11/20 Javascript
JS小功能(button选择颜色)简单实例
2013/11/29 Javascript
a标签click和href执行顺序探讨
2014/06/23 Javascript
jquery特效 点击展示与隐藏全文
2015/12/09 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
2016/03/28 Javascript
Bootstrap的Refresh Icon也spin起来
2016/07/13 Javascript
Angular.JS判断复选框checkbox是否选中并实时显示
2016/11/30 Javascript
利用JS实现简单的日期选择插件
2017/01/23 Javascript
Avalonjs 实现简单购物车功能(实例代码)
2017/02/07 Javascript
看看“疫苗查询”小程序有温度的代码
2018/07/31 Javascript
微信小程序自定义底部弹出框功能
2020/11/18 Javascript
Vue常用API、高级API的相关总结
2021/02/02 Vue.js
Python编程实现微信企业号文本消息推送功能示例
2017/08/21 Python
Python基于opencv实现的简单画板功能示例
2019/03/04 Python
Python 的字典(Dict)是如何存储的
2019/07/05 Python
python查看文件大小和文件夹内容的方法
2019/07/08 Python
Pandas实现dataframe和np.array的相互转换
2019/11/30 Python
Python3列表List入门知识附实例
2020/02/09 Python
python+appium+yaml移动端自动化测试框架实现详解
2020/11/24 Python
详解如何获取localStorage最大存储大小的方法
2020/05/21 HTML / CSS
高三英语教学反思
2014/01/13 职场文书
学生周末回家住宿长期请假条
2014/02/15 职场文书
志愿者活动总结范文
2014/04/26 职场文书
地方白酒代理协议书
2014/10/25 职场文书
2014社会治安综合治理工作总结
2014/12/04 职场文书
2014年预算员工作总结
2014/12/05 职场文书
趣味运动会开幕词
2015/01/28 职场文书
2015年学校减负工作总结
2015/05/19 职场文书
2015年普法依法治理工作总结
2015/05/26 职场文书
法人身份证明书
2015/06/18 职场文书
JS前端使用canvas实现物体的点选示例
2022/08/05 Javascript
详解Anyscript开发指南绕过typescript类型检查
2022/09/23 Javascript