vue 使用amap-jsapi-loader加载高德地图

首先安装amap-jsapi-loader

npm i amap-jsapi-loader --save

然后在utils中创建amap.js,注意AMapKey是申请高德地图账号后,配置引用的key

import AMapLoader from '@amap/amap-jsapi-loader';
import {AMapKey} from './const-datas'

const install = (Vue) => {
	AMapLoader.load({
		key: AMapKey, // key
		plugins: ["AMap.Geocoder",'Map3D'], // 插件
		version:'2.0',
		Loca:{                // 是否加载 Loca, 缺省不加载
			"version": '2.0.0'  // Loca 版本,缺省 1.3.2
		},
	}).then((amap,b)=>{
		Vue.prototype.$Amap = amap
		window.Amap = amap
	}).catch(err=>{
		throw(new Error('加载高德地图失败:'+err,))
	})
}

export default {
	install,
}

然后在main.js中引入

import Vue from 'vue'
import Amap from './utils/amap.js'
Vue.use(Amap)
### 解决Vue2项目中`amap-jsapi-loader`加载高德地图底图不显示的问题 在Vue2项目中遇到使用`@amap/amap-jsapi-loader`加载高德地图时底图无法正常显示的情况,通常是由几个常见原因引起的。以下是针对此问题的具体解决方案。 #### 1. 确认API Key配置无误 确保已正确申请并设置了有效的高德开放平台Web服务API密钥,并将其应用到项目的初始化设置中[^1]: ```javascript import { load } from '@amap/amap-jsapi-loader'; load({ key: '您的高德地图API Key', // 替换成您自己的Key version: "2.0", plugins: [] }).then(AMap => { var map = new AMap.Map('container', { zoom: 10, center: [116.397428, 39.90923], // 设置中心点坐标为北京天安门附近 }); }); ``` #### 2. 检查容器样式定义 确认用于承载地图的DOM元素具有足够的宽度和高度属性,否则即使地图实例创建成功也可能因为尺寸过小而不可见。建议给该元素显式指定宽高值或百分比[^2]: ```css #container { width: 100%; height: 500px; } ``` #### 3. 地图初始化时机调整 有时页面渲染完成前尝试初始化地图可能会导致布局异常,可以考虑将地图初始化逻辑放置于组件生命周期钩子函数内执行,比如mounted阶段[^3]: ```javascript export default { name: 'MapView', mounted() { this.initMap(); }, methods: { initMap() { load({...}) .then((AMap) => {/*...*/}) .catch(err => console.error(err)); } } }; ``` #### 4. 插件冲突排查 如果项目中还引入了其他第三方库或框架,则可能存在资源竞争现象影响到了地图展示效果。此时应逐一排除干扰因素直至找到根本原因所在。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值