vue使用百度地图(vue-baidu-map)

本文档介绍了如何在Vue项目中安装和使用vue-baidu-map插件,包括全局引入、基本使用、覆盖物操作,如点、折线、信息窗体,以及第三方组件库的应用。同时,文中提到了在使用过程中遇到的地图缩放后出现的显示问题,如缩放级别5时的空白区域和文字重叠现象,期待社区的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. 插件安装

npm i --save vue-baidu-map-v3

vue-baidu-map-v3使用的百度地图 JavaScript API v3.0

二. main.js全局引入

import BaiduMap from 'vue-baidu-map-v3'

Vue.use(BaiduMap, {
   
	ak: '你的ak'
})

三. 基本使用

<template>
	<div class="container">
		<baidu-map class="bm-view" :center="center" :zoom="zoom" :scroll-wheel-zoom="true" @ready="handler"></baidu-map>
	</div>
</template>
<script>
export default {
   
	data() {
   
		return {
   
			//没有设置 center 和 zoom 属性的地图组件是不进行地图渲染的。
			//当center 属性为合法地名字符串时例外,因为百度地图会根据地名自动调整 zoom 的值。
			center: {
   lng: 0, lat: 0},
      		zoom: 3,
      		map: null,
      		BMap: null
		}
	},
	methods: {
   
		//由于百度地图 JS API 只有 JSONP 一种加载方式,因此 BaiduMap 组件及其所有子组件的渲染只能是异步的。因此,请使用在组件的 ready 事件来执行地图 API 加载完毕后才能执行的代码,不要试图在 vue 自身的生命周期中调用 BMap 类,更不要在这些时机修改 model 层。
		handler ({
    BMap, map}) {
   
	      this.map = map
	      this.BMap = BMap
	      this.center.lng = 116.404
	      this.center.lat = 39.915
	      this.zoom = 15
	    }
	}
}
</script>
<style>
	.container {
   
		width: 100%;
		height: 100%;
	}
	.bm-view {
   
### 在 Vue 中集成并使用 `vue-baidu-map` 实现百度地图功能 #### 安装依赖包 为了在项目中使用百度地图的功能,需要先安装 `vue-baidu-map` 插件。可以通过 npm 来完成这一操作: ```bash $ npm install vue-baidu-map --save ``` 此命令会下载所需的库文件并将之保存到项目的 node_modules 文件夹下[^3]。 #### 全局注册组件库 接着要在应用入口处对百度地图组件库做全局注册。这通常是在 `main.js` 文件里完成的工作。具体做法如下所示: ```javascript import Vue from 'vue' import App from './App.vue' // 导入百度地图Vue插件 import BaiduMap from 'vue-baidu-map' // 注册插件,并传入开发者申请的应用秘钥AK作为配置项 Vue.use(BaiduMap, { ak: 'YOUR_APP_KEY' // 替换成自己在百度地图开放平台上获取的有效密钥 }) ``` 这段代码实现了将 `BaiduMap` 插件挂载到了 Vue 的原型链上,使得整个应用程序都可以访问该插件所提供的 API 和组件服务[^1]。 #### 页面内调用地图组件 当完成了上述准备工作之后,就可以开始编写具体的业务逻辑了。下面是一个简单的例子来展示如何在一个 `.vue` 单文件组件内部创建一个带有标记的地图实例: ```html <template> <baidu-map class="map" :center="{lng: 116.404, lat: 39.915}" :zoom="15"> <!-- 地图中心点坐标 --> <bm-marker :position="{lng: 116.404, lat: 39.915}"> <!-- 添加一个默认样式的图标 --> <bm-label content="这里是我!" /> <!-- 给这个位置添加文字说明标签 --> </bm-marker> </baidu-map> </template> <script> export default { name: "MyMap" } </script> <style scoped> .map { height: 500px; width: 100%; } </style> ``` 在此模板片段中,通过 `<baidu-map>` 标签指定了要显示的地图区域及其初始视图参数;而嵌套在其下的子元素则用于定义额外的地图对象,比如这里的标注 (`<bm-marker>`) 及其关联的文字提示框 (`<bm-label>`) [^2]。 #### 查看效果 最后一步就是运行开发服务器查看实际渲染出来的界面是否符合预期。如果一切正常的话,应该能够在浏览器窗口看到一张加载有指定地点信息的交互式电子地图了。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值