vue2百度地图选点组件

博客介绍了前端相关的代码块 loadMap.js 和组件 markerMap.vue,并提及了它们的使用。涉及 JavaScript 技术,属于前端开发范畴。

vue2百度地图选点组件

在这里插入图片描述
在这里插入图片描述

代码块 loadMap.js

/**
 * 动态加载百度地图api函数
 * @param {String} ak  百度地图AK,必传
 */
export default function loadBMap(ak) {
	return new Promise((resolve, reject) => {
		if (typeof window.BMap !== "undefined") {
			resolve(window.BMap);
			return true;
		}
		window.onBMapCallback = function() {
			resolve(window.BMap);
			return true;
		};
		const script = document.createElement("script");
		script.type = "text/javascript";
		script.src =
			`https://api.map.baidu.com/api?v=3.0&ak=${ak}&callback=onBMapCallback&s=1`;
		script.onerror = reject;
		document.head.appendChild(script);
		return true;
	});
}

组件markerMap.vue

<templa
### 在 Vue2 中使用百度地图 API 实现选点功能 要在 Vue2 项目中集成百度地图并实现选点功能,可以按照以下方法操作: #### 1. 引入百度地图 JavaScript API 在 `index.html` 文件中引入百度地图JavaScript SDK。可以通过 `<script>` 标签加载百度地图 API 的脚本资源。 ```html <script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=你的AK"></script> ``` 这里的 `ak` 是您申请的百度地图开发者密钥[^1]。 #### 2. 创建 Vue 组件 创建一个新的 Vue 组件封装百度地图功能。以下是完整的代码示例: ```javascript <template> <div id="map-container" style="width: 100%; height: 500px;"></div> </template> <script> export default { data() { return { map: null, marker: null, // 地图标记对象 selectedPoint: { lng: '', lat: '' } // 存储选中的经纬度 }; }, mounted() { this.initMap(); }, methods: { initMap() { const container = document.getElementById('map-container'); this.map = new BMapGL.Map(container); // 初始化地图实例 const point = new BMapGL.Point(116.404, 39.915); // 设置中心点坐标 this.map.centerAndZoom(point, 15); // 缩放级别为15级 this.map.enableScrollWheelZoom(); // 开启鼠标滚轮缩放 // 添加点击事件监听器 this.map.addEventListener('click', (e) => { this.handleMapClick(e); }); // 初始位置放置一个标记 this.marker = new BMapGL.Marker(point); this.map.addOverlay(this.marker); }, handleMapClick(event) { // 获取点击处的经纬度 const clickedPoint = event.point; this.selectedPoint.lng = clickedPoint.lng; this.selectedPoint.lat = clickedPoint.lat; console.log(`Selected Point: Longitude=${this.selectedPoint.lng}, Latitude=${this.selectedPoint.lat}`); // 更新标记的位置 this.marker.setPosition(clickedPoint); alert(`已选择地点:经度=${clickedPoint.lng},纬度=${clickedPoint.lat}`); } } }; </script> <style scoped> /* 可自定义样式 */ #map-container { border: 1px solid #ccc; } </style> ``` 上述代码实现了以下功能: - 使用 `BMapGL.Map` 类初始化地图,并设置初始视图范围和缩放等级。 - 向地图添加了点击事件监听器,在用户单击地图时获取该点的经纬度信息[^2]。 - 动态更新地图上的标记位置以反映用户的最新选择。 #### 3. 配置 AK 和调试环境 确保您的应用已经注册到百度开放平台,并获得了有效的访问密钥(AK)。如果未配置正确的 AK,则可能会遇到权限拒绝或其他错误提示。 #### 常见问题排查 如果您发现无法正常显示地图或者交互异常,请检查以下几点: - 是否正确替换了 HTML 脚本标签内的 `ak` 参数为您个人账户下的有效值? - 浏览器控制台是否存在网络请求失败的日志?这可能表明当前域名未被授权访问百度地图服务[^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值