OpenLayers2 --- Feature Event
来源:互联网 发布:mac默认英文字体 编辑:程序博客网 时间:2024/06/06 01:40
使用版本
OpenLayers2.13
有时,我们需要为地图上添加的特征(Feature)绑定监听事件,下面代码简单的实现了这个操作:
HTML:
<!DOCTYPE html><html><head lang="en"> <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>特征点事件</title> <comment> 特征点事件<br/> </comment> <!---导入CSS文件 --> <link rel="stylesheet" href="006_feature_event.css"></head><body><!-- map展示--><div id="map" class="smallmap"></div><div id="result"></div><!-- 引入OpenLayers库--><script type="text/javascript" src="../../Common/OpenLayers/OpenLayers.js"></script><!-- 引入自定义的JS--><script type="text/javascript" src="006_feature_event.js"></script></body></html>
JS代码(006_feature_event.js):
/** * OpenLayers 带事件的特征点 * Created by echo on 2017/8/31. *//** * 监听事件 * @type {{featureclick: Function, nofeatureclick: Function}} */var layerListeners = { // 点击特征点 featureclick: function(e) { log(e.object.name + "says: " + e.feature.id + "clicked.") }, // 未点击特征点 nofeatureclick: function(e) { log(e.object.name + "says: no feature clicked.") }};/** * 样式 */var style = new OpenLayers.StyleMap({ // 默认显示 'default': OpenLayers.Util.applyDefaults( {label: "${name}", pointRadius: 10}, OpenLayers.Feature.Vector.style["default"] ), // 鼠标选中时 'select': OpenLayers.Util.applyDefaults( // 点会变大 {pointRadius: 20}, OpenLayers.Feature.Vector.style.select )});/** * 基础面板 */var basicLayer = new OpenLayers.Layer.WMS( 'Base Layer', 'http://vmap0.tiles.osgeo.org/wms/vmap0', {layers: 'basic'}, {isBaseLayer: true});/** * 图层1 */var layer1 = new OpenLayers.Layer.Vector('Layer 1', { // 图层样式 styleMap: style, // 监听事件 eventListener: layerListeners })// layer1 添加特征点layer1.addFeatures([ // 画了一个多边形,这个是想知道WKT可以干什么做的一个小测试,改了官网Demo的代码 new OpenLayers.Feature.Vector(OpenLayers.Geometry.fromWKT("POLYGON ((3 1, 4 4, 2 4, 1 2, 3 1))"),{'name':"YOU"}), // 点 new OpenLayers.Feature.Vector(OpenLayers.Geometry.fromWKT("POINT(1 1)"),{'name':1})]);// layer2var layer2 = new OpenLayers.Layer.Vector("Layer 2", { styleMap: style, eventListener: layerListeners});layer2.addFeatures([ // fromWKT: new OpenLayers.Feature.Vector(OpenLayers.Geometry.fromWKT("POINT(-1 1)"),{'name':2}), new OpenLayers.Feature.Vector(OpenLayers.Geometry.fromWKT("POINT(1 -1)"),{'name':2})]);// 生成一个mapvar map = new OpenLayers.Map({ div: "map", allOverlays: false, layers: [basicLayer,layer1,layer2], zoom: 6, center: [0, 0], eventListeners: { // OpenLayers.Events.featureclick 中可以找到这些事件 featureover: function(e) { // renderIntent : 从styleMap选用一个样式 e.feature.renderIntent = "select"; e.feature.layer.drawFeature(e.feature); log("Map says: Pointer entered " + e.feature.id + " on " + e.feature.layer.name); }, featureout: function(e) { e.feature.renderIntent = "default"; e.feature.layer.drawFeature(e.feature); log("Map says: Pointer left " + e.feature.id + " on " + e.feature.layer.name); }, featureclick: function(e) { log("Map says: " + e.feature.id + " clicked on " + e.feature.layer.name); } }, controls:[new OpenLayers.Control.LayerSwitcher({})]});// 和上面的 controls 效果相同//map.addControl(new OpenLayers.Control.LayerSwitcher({}));/** * 页面上给出操作信息 * @param msg */function log(msg) { if (!log.timer) { result.innerHTML = ""; log.timer = window.setTimeout(function() {delete log.timer;}, 100); } result.innerHTML += msg + "<br>";}
CSS(006_feature_event.css):
#map { width: 500px; height: 500px;}
结果:
阅读全文
0 0
- OpenLayers2 --- Feature Event
- OpenLayers2 源码解读 事件Event、Events
- select-feature openlayers2.13.1矢量图层的要素选择 框选 点选
- WSS2010---给FEATURE添加Event Handle
- openlayers2 vector
- openlayers2 笔记
- OpenLayers2---Features
- SharePoint2013 Study Notes— How to Create a Event Receiver and Add Feature Event Receivers
- openlayers2中selectcontrol用法
- Openlayers2唯一值渲染
- openlayers2渐变色渲染
- openLayers2 画图标
- OpenLayers2---WMS服务
- SharePoint 2010部署WCF续 - feature event receiver实现自动部署
- Openlayers2中统计图的实现
- Openlayers2卷帘功能的实现
- Openlayers2中聚类的动态实现
- Openlayers2中vector扩展FeatureLayer
- IDE:Can't use Subversion command line client
- Python学习(2)待整理
- VS调用 libxl 库异常
- java中HashMap的使用方法
- 天津武清区
- OpenLayers2 --- Feature Event
- keepalived+mycat+mysql框架搭建
- 系统启动流程(三)
- RecycleView多控件携带多个参数点击事件
- Semantic Segmentation using Fully Convolutional Networks over the years
- 文章标题
- java tcp 网络通信--使用多线程传输文件
- 状态码(Status Codes)W3英文解释
- Maven学习笔记 -- day04 Maven分模块开发