select-feature openlayers2.13.1矢量图层的要素选择 框选 点选
来源:互联网 发布:查九牧卫浴型号软件 编辑:程序博客网 时间:2024/05/29 12:30
<!DOCTYPE html><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> <meta name="apple-mobile-web-app-capable" content="yes"> <title>SelectFeature Control on Layer.Vector</title> <link rel="stylesheet" href="../theme/default/style.css" type="text/css"> <link rel="stylesheet" href="style.css" type="text/css"> <style type="text/css"> #controlToggle li { list-style: none; } </style> <script src="../lib/OpenLayers.js"></script> <script type="text/javascript"> var map, drawControls; //定义要素的矢量图的样式的线宽 OpenLayers.Feature.Vector.style['default']['strokeWidth'] = '2'; function init(){//初始化map map = new OpenLayers.Map('map');//声明并初始化一个WMS图层 var wmsLayer = new OpenLayers.Layer.WMS( "OpenLayers WMS", "http://vmap0.tiles.osgeo.org/wms/vmap0", {layers: 'basic'} ); // allow testing of specific renderers via "?renderer=Canvas", etc var renderer = OpenLayers.Util.getParameters(window.location.href).renderer;//?: 运算符是 if...else 语句的快捷方式 renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers;//声明并初始化一个矢量图层 var vectors = new OpenLayers.Layer.Vector("Vector Layer", { renderers: renderer }); vectors.events.on({ 'featureselected': function(feature) { document.getElementById('counter').innerHTML = this.selectedFeatures.length; }, 'featureunselected': function(feature) { document.getElementById('counter').innerHTML = this.selectedFeatures.length; } });//map添加2个图层 map.addLayers([wmsLayer, vectors]); map.addControl(new OpenLayers.Control.LayerSwitcher()); //5个控制器 drawControls = {//点 point: new OpenLayers.Control.DrawFeature( vectors, OpenLayers.Handler.Point ),//线 line: new OpenLayers.Control.DrawFeature( vectors, OpenLayers.Handler.Path ),//多边形 polygon: new OpenLayers.Control.DrawFeature( vectors, OpenLayers.Handler.Polygon ),//选择 select: new OpenLayers.Control.SelectFeature( vectors, { clickout: false, toggle: false, multiple: false, hover: false, toggleKey: "ctrlKey", // ctrl key removes from selection multipleKey: "shiftKey", // shift key adds to selection box: true } ),//悬浮选择 selecthover: new OpenLayers.Control.SelectFeature( vectors, { multiple: false, hover: true, toggleKey: "ctrlKey", // ctrl key removes from selection multipleKey: "shiftKey" // shift key adds to selection } ) }; //map添加5个控制器 for(var key in drawControls) { map.addControl(drawControls[key]); }//设置map的中心点 map.setCenter(new OpenLayers.LonLat(0, 0), 3); }//5大功能切换 function toggleControl(element) { for(key in drawControls) { var control = drawControls[key]; if(element.value == key && element.checked) {//激活控制器 control.activate(); } else {//关闭控制器 control.deactivate(); } } }//处理两个多选框处理 function update() {//选中点击空白处的配置 var clickout = document.getElementById("clickout").checked; if(clickout != drawControls.select.clickout) { drawControls.select.clickout = clickout; }//选中框选后的配置 var box = document.getElementById("box").checked; if(box != drawControls.select.box) { drawControls.select.box = box; if(drawControls.select.active) {//重新激活选择控制器 drawControls.select.deactivate(); drawControls.select.activate(); } } } </script> </head> <body onload="init()"> <h1 id="title">OpenLayers Select Feature Example</h1> <div id="tags"> vector, feature, selecting, selection, advanced </div> <p id="shortdesc"> Select a feature on hover or click with the Control.SelectFeature on a vector layer. 使用悬浮或者点击操作选择一个要素。在矢量图层上选择要素。(一般每个矢量图层上都可以放置N多个要素。) </p> <div id="map" class="smallmap"></div> <ul id="controlToggle"> <li> <input type="radio" name="type" value="none" id="noneToggle" onclick="toggleControl(this);" checked="checked" /> <label for="noneToggle">navigate导航菜单</label> </li> <li> <input type="radio" name="type" value="point" id="pointToggle" onclick="toggleControl(this);" /> <label for="pointToggle">draw point画点</label> </li> <li> <input type="radio" name="type" value="line" id="lineToggle" onclick="toggleControl(this);" /> <label for="lineToggle">draw line画线</label> </li> <li> <input type="radio" name="type" value="polygon" id="polygonToggle" onclick="toggleControl(this);" /> <label for="polygonToggle">draw polygon画多边形</label> </li> <li> <input type="radio" name="type" value="selecthover" id="selecthoverToggle" onclick="toggleControl(this);" /> <label for="selecthoverToggle">Select features on hover悬浮时选择要素</label> </li> <li> <input type="radio" name="type" value="select" id="selectToggle" onclick="toggleControl(this);" /> <label for="selectToggle">select feature 选择要素(<span id="counter">0</span> features selected)</label> <ul> <li> <input id="box" type="checkbox" checked="checked" name="box" onchange="update()" /> <label for="box">select features in a box框选要素</label> </li> <li> <input id="clickout" type="checkbox" name="clickout" onchange="update()" /> <label for="clickout">click out to unselect features点击空白取消选择要素</label> </li> </ul> </li> </ul> <p>Use the shift key to select multiple features. Use the ctrl key to toggle selection on features one at a time. Note: the "clickout" option has no effect when "hover" is selected.用shift键添加要素。用ctrl键减去要素。</p> </body></html>
阅读全文
0 0
- select-feature openlayers2.13.1矢量图层的要素选择 框选 点选
- openlayers2 wfs方式加载矢量图层
- 特征选择(feature select)
- AE要素选择(点选和拉框选择)
- AE要素选择(点选和拉框选择…
- OpenLayers2 --- Feature Event
- QGis(三)查询矢量图层的要素属性字段值
- openlayers3+中实现点选、圈选、多边形选择点要素
- 在要素图层上点选要素的快速方法
- 点选要素(完整版)
- ArcEngine根据选择的要素判断其所属图层
- C#+ArcEngine:设置矢量图层的透明度
- C#+ArcEngine:设置矢量图层的透明度
- ArcMapControl不显示矢量图层的问题
- 提取矢量图层外部的栅格图
- QGIS开发之矢量图层的使用
- OpenLayers-2.13.1 用选择器框选多个矢量图层中的多个要素
- 层遇到select框时 选择自 d80 的 Blog
- Android怎样实现传递对象集合?
- Linux驱动修炼之道-SPI驱动框架源码分析(中)
- 程序员如何提高自己
- K均值用法
- Linux驱动修炼之道-SPI驱动框架源码分析(下)
- select-feature openlayers2.13.1矢量图层的要素选择 框选 点选
- 在线生成32位和16位大小写MD5密文
- java中如何遍历Map对象的4种方法
- Java字节码和Dalvik字节码
- Hibernate学习(一)
- SecureCRT连接Linux问题及解决方法
- net start MongoDB启动MongoDB服务失败
- windows 10 内置ubuntu 开启以及应用
- TCP长连接、短连接