OpenLayers的selector工具相信挺多人都没有用过,其实这个工具用处还是不少的。比如完成元素查询时,需要实现图属性联动,使用这个工具很方便。最近做项目时也使用到这个工具,使用起来确实挺方便的。效果如图:

红色部分为使用selector选择的效果。

下面说说实现过程:

定义selector工具,并添加到地图中

//高亮元素选择
selectControls = {
selector: new OpenLayers.Control.SelectFeature(this.hightLightVectorLayer, {
selectStyle: { fillColor: 'red', zIndex: 500 },
toggle: true,
onSelect: function (feature) {
that.hightLineEleSelectCallback(feature, that);
},
onUnselect: function (feature) {
that.map.popups.length > 0 && that.map.popups[0].destroy();
}
})
};
map.addControl(selectControls['selector']]);

  

这里要和大家说说它的几个属性:

(1)this.hightLightVectorLayer指的是目标图层,这个工具可以选择哪个图层上的元素。

(2)selectStyle:{},是选中元素的样式。

(3)Toggle是指第一个点击选中上,第二次取消选中,第三次选中…..

(4)onSelect是一个事件类型的属性,指选中元素后,执行的操作,有个参数feature,feture有该元素的fid等信息,可以用来进行图属联动

(5)onUnselect指的是图层中非元素的点击事件。

(6)还有其他的许多属性,如hover: false,callback等,有兴趣的可以看看。

2.元素选择回调方法。主要是添加pupop到地图上显示信息。也可使用feature.attributes.fid属性和属性结果进行联动。我这里做的是添加popup到地图上,代码如下:

/*
* 岩石地层高亮元素选择回调方法,展示popup
* Parameters:
* feature: - {Openlayers feature element} 当前选中的元素
* that: - {object} 当前上下文
*/
hightLineEleSelectCallback: function (feature, that) {
//添加popup内容
var popupStr = '<div class="faultInfoPopupCon">'
'<div class="head rockHead">' returnData.name '<label>123</label></div>'
'<div class="rockMain">'
'<table>'
'<tr>'
'<td><label class="name">厚度:</label></td>'
'<td><label class="value">123m</label></td>'
'</tr>'
'<tr>'
'<td><label class="name">岩性描述:</label></td>'
'<td><label class="value">mayday</label></td>'
'</tr>'
'</table>'
'</div>'
'</div>';
//add popup
feature.popup = new OpenLayers.Popup.NestFramedCloud("pop",
feature.geometry.getBounds().getCenterLonLat(),
null, popupStr, null, true,
function () { //pupop关闭方法
selectControls.selector.unselectAll();
map.popups.length > 0 &&map.popups[0].destroy();
}, {
imageSrc: baseUrl 'Scripts/libs/rrpopup/img/nest-popup.png'
});
map.popups.length > 0 && map.popups[0].destroy();
map.addPopup(feature.popup);
},

  

关于这个OpenLayers.Control.SelectFeature工具,还有其他很多的属性,大家可以参考类OpenLayers.Control.SelectFeature进行学习。

OpenLayers元素选择工具的更多相关文章

  1. 『与善仁』Appium基础 — 17、元素定位工具(一)

    目录 1.uiautomatorviewer介绍 2.uiautomatorviewer工具打开方式 3.uiautomatorviewer布局介绍 4.uiautomatorviewer工具的使用 ...

  2. 『与善仁』Appium基础 — 18、元素定位工具(二)

    目录 1.Appium Inspector介绍 2.Appium Inspector打开方式 3.Appium Inspector布局介绍 4.Appium Inspector工具的配置 5.Appi ...

  3. 『与善仁』Appium基础 — 19、元素定位工具(三)

    目录 1.Chrome Inspect介绍 2.Chrome Inspect打开方式 3.Chrome Inspect工具的使用 (1)Chrome Inspect工作前提 (2)Chrome Ins ...

  4. android EditText长按屏蔽ActionMode context菜单但保留选择工具功能

    最近项目要求屏蔽EditText 长按出来的ActionMode菜单,但是要保留选择文本功能.这个屏蔽百度会出现各种方法,这里说一下我的思路: 1.屏蔽百度可知setCustomSelectionAc ...

  5. IT忍者神龟之Photoshop解析新手抠图的5个高速选择工具

    一:魔棒工具 这是建立选区最简单的方法.但仅仅有在背景色为纯色时才会比較有效. 因此,当要选择的对象的背景为空白背景时.可使用魔棒工具,比如一张产品拍摄图. 在建立选区时,首先,要确保图片在一个图层中 ...

  6. Dotfuscator自定义规则中的元素选择

    Dotfuscator是专业的.NET程序代码保护软件.是支持规则自定义的,你可以对重命名.程序控制流.字符串加密等等功能自定义规则.在进行规则自定义过程中,可以通过元素的不同选择,满足自己的程序需要 ...

  7. ps入门教程:选择工具、移动工具、索套工具的使用

    本节课程主要内容:1.学习矩形选择工具.椭圆选择工具.移动工具.多边形套索工具.套索工具.磁性套索工具和魔术 棒选择工具.2.用套索和磁性套索,实现对人物照片的抠图.----------------- ...

  8. PS中如何提高修改psd图片的效率(自动选择工具)

    在photoshop中制作图片的时候,一般要养成保留psd格式的习惯,纵然普通时候jpg,png格式常用,考虑到以后可能需要修改,也应该备份一下.如果考虑到以后需要修改,可每次成品保存成两个,一个ps ...

  9. appium 元素定位工具

    两种元素定位工具: 1.uiautomatorviewer是android-sdk自带的一个元素定位工具,目录D:\androidsdk\androidsdk\tools\bin . 双击启动uiau ...

随机推荐

  1. Easy Tag Write(3.2)

    package skyseraph.android.util; /** * @Title : LogUtil.java * @Package : tcl.nfc.phone.util * @Class ...

  2. JS 数组迭代方法

    var arr = [3,4,5,6,7,"a"]; var isNum = function(elem,index,AAA){return !isNaN(elem);} var ...

  3. CentOs中yum安装LAMP+PHPMYADMIN

    对于租用以及VPS,提供在Linux安装LAMP(Linux+Apache+mysql+PHP),对于这个组件,不做过多的解释,网上很多这方面的资料.下面只介绍一种安装方法,作为以后使用的一个简单文档 ...

  4. html 关键字设定

    <meta name="description" content="仡家油茶仡家油茶仡家油茶仡家油茶"> <meta name="k ...

  5. diff输出格式解析

    1 命令格式 $diff <变动之前的文件> <变动之后的文件> 2 diff文件的三种格式 normal diff context diff unified diff 3 示 ...

  6. 调优SQL思路

    --调优SQL --sqlreview ->logshipping -> ag辅助副本 --查看正确的执行计划 打开实际的执行计划set statistics io on --查看错误的执 ...

  7. 一个section刷新 一个cell刷新

    一个section刷新   一个cell刷新 //一个section刷新 NSIndexSet *indexSet=[[NSIndexSet alloc]initWithIndex:2]; [tabl ...

  8. JavaScript 动态脚本

    动态脚本,指的是在页面加载时不存在,但将来的某一个时刻通过修改DOM动态添加的脚本. <script type="text/javascript"> function ...

  9. oracle游标透彻详解分析

    主:本文来自:http://www.cnblogs.com/huyong/archive/2011/05/04/2036377.html 4.1 游标概念 4.1.1 处理显式游标 4.1.2 处理隐 ...

  10. CSS中的浮动

    这是一个重点内容,在做网页布局的时候,经常用到,所以在这里单独将其列出来小结!