openlayers2中selectcontrol用法

在做电子地图项目中,一个基本的功能就是要能对地图上面的资源点进行选中,进而进行进一步的操作。那如何对地图的资源点进行选择呢?如果你的资源点图层是vector图层,那么你就可以用OpenLayers.Control.SelectFeature控件来进行操作。

OpenLayers.Control.SelectFeature控件可以对资源点进行悬浮选择,框选等操作。下面代码段是对parkingLayer图层上面的资源点进行选择。box属性为true表示可以进行框选。

parkingSelectControl = new OpenLayers.Control.SelectFeature(
					parkingLayer, {
						clickout: false, 
			            toggle: true,
			            multiple: false, 
			            hover : false,
						//autoActivate : true,
						toggleKey: "ctrlKey", // ctrl key removes from selection
		                multipleKey: "shiftKey", // shift key adds to selection
		                box: true
					});

那么, OpenLayers.Control.SelectFeature可以对多个图层进行选择吗?当然可以!

featureSelectControl = new OpenLayers.Control.SelectFeature(
					[inducedScreenLayer,queryMachineLayer,blueToothLayer,QRCodeLayer], {
						clickout: true, 
			            toggle: false,
			            multiple: false, 
			            hover : false,
						autoActivate : true,
						//toggleKey: "ctrlKey", // ctrl key removes from selection
		                multipleKey: "shiftKey", // shift key adds to selection
		                box: false
					});

上面代码端是对inducedScreenLayer,queryMachineLayer,blueToothLayer,QRCodeLayer等4个图层中的资源进行选择。

这个时候有一个需求是资源点不是同时显示的。地图上面有开关每次只显示一类的资源点,然后可以对该类别的资源点进行选择操作。这个时候用上面的代码段只能对第一次加载出来的图层进行选择操作,对于后面打开的图层没有操作。怎么办呢?不要着急。我们有大杀器!setLayer。在每次切换地图显示的时候用setLayer属性指定selectfeature关联的图层就可以了。当打开inducedScreenLayer图层时,执行featureSelectControl.setLayer(inducedScreenLayer);即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值