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开发chrome插件,实现获取界面数据和保存到数据库功能
Dec 01 Vue.js
vuex Module将 store 分割成模块的操作
Dec 07 Vue.js
Vue 简单实现前端权限控制的示例
Dec 25 Vue.js
vue 使用 sortable 实现 el-table 拖拽排序功能
Dec 26 Vue.js
Vue实现简易购物车页面
Dec 30 Vue.js
Vue+scss白天和夜间模式切换功能的实现方法
Jan 05 Vue.js
vue 中this.$set 动态绑定数据的案例讲解
Jan 29 Vue.js
详解vue3中组件的非兼容变更
Mar 03 Vue.js
如何让vue长列表快速加载
Mar 29 Vue.js
如何理解Vue前后端数据交互与显示
May 10 Vue.js
Vue 打包后相对路径的引用问题
Jun 05 Vue.js
vue实现input输入模糊查询的三种方式
Aug 14 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
收音机的保养
2021/03/01 无线电
PHP的Yii框架中创建视图和渲染视图的方法详解
2016/03/29 PHP
YII框架中搜索分页jQuery写法详解
2016/12/19 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
php中上传文件的的解决方案
2018/09/25 PHP
IE DOM实现存在的部分问题及解决方法
2009/07/25 Javascript
基于JQuery的动态删除Table表格的行和列的代码
2011/05/12 Javascript
关于hashchangebroker和statehashable的补充文档
2011/08/08 Javascript
浅谈Javascript中的Function与Object
2015/01/26 Javascript
深入理解Nodejs Global 模块
2017/06/03 NodeJs
zTree获取当前节点的下一级子节点数实例
2017/09/05 Javascript
微信小程序实现全国机场索引列表
2018/01/31 Javascript
详解Vue 多级组件透传新方法provide/inject
2018/05/09 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
2019/05/07 Javascript
Angular如何由模板生成DOM树的方法
2019/12/23 Javascript
jquery传参及获取方式(两种方式)
2020/02/13 jQuery
NodeJS配置CORS实现过程详解
2020/12/02 NodeJs
[02:41]DOTA2英雄基础教程 亚巴顿
2014/01/02 DOTA
基于Python实现的百度贴吧网络爬虫实例
2015/04/17 Python
Python三级目录展示的实现方法
2016/09/28 Python
Python3.5内置模块之random模块用法实例分析
2019/04/26 Python
python监控进程状态,记录重启时间及进程号的实例
2019/07/15 Python
Python PyInstaller安装和使用教程详解
2020/01/08 Python
解决Keras 中加入lambda层无法正常载入模型问题
2020/06/16 Python
Python pip使用超时问题解决方案
2020/08/03 Python
Python 列表推导式需要注意的地方
2020/10/23 Python
Python高阶函数与装饰器函数的深入讲解
2020/11/10 Python
CSS3 中的@keyframes介绍
2014/09/02 HTML / CSS
神话般的珠宝:Ross-Simons
2020/07/13 全球购物
俄罗斯在线服装店:STOLNIK
2021/03/07 全球购物
大一军训感言
2014/01/09 职场文书
2014年质检工作总结
2014/11/26 职场文书
开幕式邀请函
2015/01/31 职场文书
教师个人年度总结
2015/02/11 职场文书
2015入党个人自传范文
2015/06/26 职场文书
2016保送生自荐信范文
2016/01/29 职场文书