首页 > 代码库 > OpenLayers 如何管理多控件的激活
OpenLayers 如何管理多控件的激活
在使用OpenLayers的时候,常常需要使用多个控件,来实现像:绘制矢量要素(DrawFeature),查询要素属性(WMSGetFeatureInfo),等等。这样就需要在不同的控件之间进行切换,也就是激活控件。常用的方式是,在创建控件的时候,保存到一个数组中,并给予命名,例如:
var infoControls = { click: new OpenLayers.Control.WMSGetFeatureInfo(), // 参数省略 hover: new OpenLayers.Control.WMSGetFeatureInfo()// 参数省略 };
这样,我们就可以通过infoControls.click来获取到该控件。1)当我们使用radio来标记当前使用的控件,就可以通过如下函数来切换控件。
function toggleControl(element) { for (key in drawControls) { var control = drawControls[key]; if (element.value =http://www.mamicode.com/= key && element.checked) {>2)如果我们使用OpenLayers.Control.Panel来管理控件,可以获取buttonclick事件,来确定到底点击的是哪个控件,然后激活。(function(controls) { map.events.register("buttonclick", this, function(evt) { var button = evt.buttonElement; for (var tempName in controls) { if (controls[tempName].panel_div == button) { controls[tempName].activate(); } else { controls[tempName].deactivate(); } } }) })(controls);3)当然,你还可以参考EditingToolbar去扩展OpenLayers,然后扩展一个特有的Panel对象,然后直接默认去处理。=====================================================================================
生活不仅需要激情四射,也需要闲庭信步。
OpenLayers 如何管理多控件的激活
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。