百度地图自定义控件




上面的搜索框就是自定义的控件


接下来就是源码

/**
 * 自定义的control
 * 需要依赖的 文件有http://fontawesome.io/assets/font-awesome/css/font-awesome.css
 */

function SearchControl(posIndex,left,top){
	var position=[BMAP_ANCHOR_TOP_LEFT,BMAP_ANCHOR_TOP_RIGHT,BMAP_ANCHOR_BOTTOM_LEFT,BMAP_ANCHOR_BOTTOM_RIGHT];
	this.defaultAnchor=position[posIndex];
	this.defaultOffset=new BMap.Size(left,top);
}
SearchControl.prototype=new BMap.Control();
SearchControl.prototype.initialize=function(map){
	var div=document.createElement("div");
	$(div).css({
		width:"150px",
		overflow:"auto",
		border:"1px solid #aaa",
		backgroundColor:"#fff"
	});
	$(div).html("<input style='height:25px;border-width:0px' type='text'><span style='padding:5px 0px'><i class='fa fa-search bigger-120' style='color:green;cursor:pointer' title='搜索'></i></span></div>");
	map.getContainer().appendChild(div);
	return div;
}

上面的代码包括三部分

1:构造函数(里面的两个属性defaultAnchor和defaultOffset 都要定义)

2:继承BMap.Control()

3:initialize方法

在initialize 方法里面我们定义要显示的控件内容,记得最后需要使用map.getContainer().appendChild(div)

在这里面还可以定义事件响应,但我更倾向将与业务相关的事件响应作为参数传入。这样,同样的控件便可以执行不同的操作。


调用的时候

var searchCtrl=new SearchControl(0,60,10);

map.addControl(searchCtrl);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值