VueCli3引入百度地图Api详细步骤+宽高自动页面自适应(踩坑+源代码)

news/2024/7/10 2:04:07 标签: vue, 百度, api

在这里插入图片描述

  1. 首先去百度地图官网申请ak密钥,这个很简单,百度也有很多教程,就不细说了。

    传送门:申请ak密钥
    开发文档:百度地图API开发文档

  2. 打开项目文件,在public文件夹下的index.html页面中引入百度地图API
    这里的密钥,要替换为你刚才申请的ak密钥

 <script type="text/javascript" src="http://api.map.baidu.com/getscript?v=3.0&ak=密钥"></script>

3.在src->components文件夹下新建一个vue组件,我把它命名为:BaiduMap.vue,然后贴上代码

<template>
	<div id="map" :style="{height:mapHeight}">
		<div id="allmap" ref="allmap"></div>
	</div>
</template>
<script>
	export default {
		name: "BaiduMap",
		methods: {
			map() {
				let map = new window.BMap.Map(this.$refs.allmap); // 创建Map实例
				map.centerAndZoom(new window.BMap.Point(116.404, 39.915), 11); // 初始化地图,设置中心点坐标和地图级别
				map.addControl(
					new window.BMap.MapTypeControl({
						// 添加地图类型控件
						mapTypes: [window.BMAP_NORMAL_MAP, window.BMAP_HYBRID_MAP],
					})
				);
				map.setCurrentCity("北京"); // 设置地图显示的城市 此项是必须设置的
				map.enableScrollWheelZoom(true); // 开启鼠标滚轮缩放
			},
			initMapHeight() {
				var main = document.getElementById("map");
				main.style.height = window.innerHeight + "px";
			},
		},
		data() {
			return {
				mapHeight: 800 + "px",
			};
		},
		mounted() {
			this.initMapHeight();
			this.map();
			window.onresize = () => {
				return (() => {
					this.mapHeight = window.innerHeight + 'px';
				})();
			};
		},
	};
</script>
<style>
	#allmap {
		height: 100%;
		overflow: hidden;
	}
</style>

先来解释一下上面的代码,百度地图的容器必须在有高度的div中才能进行渲染,为了实现页面自适应的效果,为id为map的父元素绑定了动态高度mapHeight,并在页面加载的时候初始化这个值,这样容器就有高度了,这个高度在页面发送变化的时候会被更新。

window.onresize = () => {
				return (() => {
					this.mapHeight = window.innerHeight + 'px';
				})();
			};

其他代码阅读开发文档后就都明白了
开发文档:百度地图API开发文档
————————————————————————————————————————————————
到这里,百度地图的组件就做好了,当你需要用它的时候把他引入相应的界面就可以了。
什么?你别告诉我你不会引入界面……

比如我们要在index.vue 中引入百度地图

  1. 在script插入如下代码
import BaiduMap from '@/components/BaiduMap.vue'

	export default {
		name: 'Index',
		components: {
			BaiduMap
		}
	}
  1. 即可在template中使用该模板
<template>
	<BaiduMap></BaiduMap>
</template>

完成
在这里插入图片描述

今天就到这里~ 我们下个bug再见


http://www.niftyadmin.cn/n/1164753.html

相关文章

PAT乙级真题解析:数字分类(1012)题目+解析+源码(C++版)

题目描述 给定一系列正整数&#xff0c;请按要求对数字进行分类&#xff0c;并输出以下5个数字&#xff1a; A1 能被5整除的数字中所有偶数的和&#xff1b; A2 将被5除后余1的数字按给出顺序进行交错求和&#xff0c;即计算n1-n2n3-n4…&#xff1b; A3 被5除后余2的数字的…

MongoDB快速入门——建立模型与设置关联查询(Node.js)

本文阅读前提&#xff1a;MongoDB数据库已安装、Node环境已配置、初始化项目并安装 ‘mongoose’ 插件。 预计花费时间&#xff1a;20Min&#xff1b; 本篇文章以“文章”和“分类”为例子&#xff0c;来讲解MongoDB的基础用法。跟随本文代码讲解&#xff0c;你将学会MongoDB的…

C/C++易错知识点——算法笔记-读书笔记-第二章-零碎知识点

如果对你有帮助的话&#xff0c;欢迎点赞收藏~ 本系列持续更新中 零碎知识点&#xff1a; 尽量不要使用float&#xff0c;碰到浮点型的数据都应该用double来存储。 在C语言中&#xff0c;字符常量&#xff08;必须是单个字符&#xff09;必须用单引号标注。 字符串常量可以作…

排序与sort函数的应用 PAT A1025 Ranking 全网最详解析 附完整代码 PAT真题解析

本篇文章将会用一道PAT甲级&#xff08;A1025&#xff09;题目&#xff0c;完整讲述sort函数的应用 首先&#xff0c;上题目&#xff1a;PAT A1025【 PAT Ranking】 注释很重要一定要认真看 注释很重要一定要认真看 注释很重要一定要认真看 题目要求&#xff1a; ​ Program…

递归详解(一)全排列问题 数据结构-算法解析-浙大-PAT

递归——全排列问题&#xff08;Full Permutation&#xff09; ​ 废话少说&#xff0c;首先看定义&#xff1a; 全排列(Full Permutation)&#xff0c;一般把1~n这n个整数按某个顺序摆放的结果称为这n个整数的一个排列 &#xff0c;而全排列指这n个整数能形成的所有排列。例如…

AVL平衡二叉树——常用标准函数代码

AVL平衡二叉树——常用标准函数代码 AVL树仍然是一颗二叉查找树&#xff0c;只是在其基础上增加了**“平衡”**的要求。 由于需要对每个节点都得到平衡因子&#xff0c;因此需要在树的结构中加入height变量&#xff0c;用来记录以当前节点为根节点的子树的高度。 结构体如下…

PAT常用易错算法(2021持续更新)

素数判断 bool isprime(int n) {if(n < 1) return false;int sqr int(sqrt(n * 1.0));for(int i 2; i < sqr; i) {if(n % i 0)return false;}return true;十进制转d进制 int n, d;//n为十进制数&#xff0c;d为转换的目标进制 int len 0, arr[100]; do{arr[len] n %…