百度地图的覆盖物自定义(一)--标注物的自定义

本文介绍了在百度地图中实现覆盖物自定义的过程,特别是针对标注物的自定义。作者分享了在接到外包项目后,如何克服文档不足的困难,通过深入研究API和类方法,最终成功满足客户自定义需求的经历。希望通过分享,能为其他开发者提供参考,减少类似问题的解决时间。
摘要由CSDN通过智能技术生成

百度地图的覆盖物自定义(一)--标注物的自定义

导师接了一个外包,需要结合百度地图,但除了调用一个百度地图的架构,其他都是要实现自定义,这一段子时间真是被这破地图折腾的死去活来,但经过几天的奋斗,终于实现客户的各种自定义需求。因为网上资料完整版太少了,开始我是一边一边看百度地图的api文档以及demo和各种网上查找,但还是没能实现需求,最终最能去文档中查看一个个涉及到的类中的各种方法,真是心疼自己。功夫不负有心,特此记录一下,也方便后面的人遇到同样的问题减少一下查阅量,程序猿是个辛苦的职业。

这篇文章就是主要讲标注物的自定义


//标注,全局变量
myIcon = new BMap.Icon("img/bus_unselect.png", new BMap.Size(100, 100), {
	// 指定定位位置。   
	// 当标注显示在地图上时,其所指向的地理位置距离图标左上    
	// 角各偏移10像素和25像素。您可以看到在本例中该位置即是   
	// 图标中央下端的尖角位置。    
	anchor: new BMap.Size(0, 0),
	// 设置图片偏移。   
	// 当您需要从一幅较大的图片中截取某部分作为标注图标时,您   
	// 需要指定大图的偏移位置,此做法与css sprites技术类似。    
	// imageOffset: new BMap.Size(0, 0 - 1 * 25)   // 设置图片偏移    
});

var point=new BMap.Point(111.54525,45.578);
var marker = addMarker(point, myIcon);
map.addOverlay(marker); // 添加标注BusUnclickedOverlay
//自定义添加函数,创建标注
function addMarker(point, myIcon) {
	var marker = new BMap.Marker(point, {
		icon: myIcon
	});
	return marker;
}



百度地图API提供了一个便捷的功能,允许你在地图上添加点击事件监听到标注(Marker),当用户点击标注时,会弹出一个自定义的`el-dialog`组件作为覆盖物。这个过程通常包括以下几个步骤: 1. **初始化地图和标注**:首先,你需要通过官方文档引入百度地图JavaScript API,并创建一个地图实例,同时设置好地图的中心点、缩放级别以及所需的标注。 ```javascript import BMap from '@baidu/map/api'; // 创建地图实例 const map = new BMap.Map('container-id'); map.centerAndZoom(new BMap.Point(经度, 纬度), 15); ``` 2. **添加标注并绑定事件**:在地图上添加标注时,可以给它添加一个点击事件处理器,打开`el-dialog`。 ```javascript const marker = new BMap.Marker(point); // point是你想标记的位置 marker.addEventListener('click', function(e) { const dialog = createDialog(); // 创建并显示el-dialog }); ``` 3. **创建和管理el-dialog**:`createDialog`函数通常在需要时动态创建`el-dialog`,将其内容填充好,然后显示出来。 ```javascript function createDialog() { const dialog = document.createElement('div'); // 创建dialog元素 const content = '<el-dialog></el-dialog>'; // 这里填写el-dialog的HTML结构和内容 dialog.innerHTML = content; return new Vue({ el: dialog, // ...配置dialog的属性和方法 }).$mount(); } ``` 4. **将dialog添加到DOM**:你可以选择将`el-dialog`直接插入到地图容器的DOM中,或者使用其他方式(比如定位绝对位置)使其在地图上可见。 注意:确保你已经正确地导入了Element UI库,并且对Vue.js有基本的理解,因为`el-dialog`是基于Vue构建的组件。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值