From: Andrew H. <ahh...@gm...> - 2010-11-02 12:45:43
|
Hi Everyone, We have a requirement that we need to register a hover handler on a map. GWT-OpenLayers can't do this yet and the native javascript has me a little confused... I have a simple javascript example working below. This seems like it would be complex to wrap, advice would be most appreciated. <html xmlns="http://www.w3.org/1999/xhtml"> <head> <link rel="stylesheet" href=" http://openlayers.org/dev/theme/default/style.css" type="text/css" /> <link rel="stylesheet" href=" http://openlayers.org/dev/examples/style.css" type="text/css" /> <style type="text/css"> #map { width: 640px; height: 480px; } </style> <script src="http://openlayers.org/dev/lib/Firebug/firebug.js "></script> <script src="http://openlayers.org/dev/OpenLayers.js"></script> <script type="text/javascript"> *OpenLayers.Control.Hover = OpenLayers.Class(OpenLayers.Control, { * * defaultHandlerOptions: {* * 'delay': 500,* * 'pixelTolerance': null,* * 'stopMove': false* * },* * * * initialize: function(options) {* * this.handlerOptions = OpenLayers.Util.extend(* * {}, this.defaultHandlerOptions* * );* * OpenLayers.Control.prototype.initialize.apply(* * this, arguments* * ); * * this.handler = new OpenLayers.Handler.Hover(* * this,* * {'pause': this.onPause, 'move': this.onMove},* * this.handlerOptions* * );* * }, * * * * onPause: function(evt) {* * var output = document.getElementById('output');* * var msg = 'pause ' + evt.xy;* * output.value = output.value + msg + "\r\n";* * },* * * * onMove: function(evt) {* * // do something... like cancel* * }* * });* var map; function init(){ map = new OpenLayers.Map('map'); var layer = new OpenLayers.Layer.WMS('OpenLayers WMS',' http://vmap0.tiles.osgeo.org/wms/vmap0',{layers: 'basic'}); map.addLayers([layer]); *var hoverControl = new OpenLayers.Control.Hover({* * handlerOptions: {* * 'delay': 500* * }* * }); * map.addControl(hoverControl); map.zoomToMaxExtent(); hoverControl.activate(); } </script> </head> <body onload="init()"> <div id="map" class="smallmap"></div> <textarea class="output" id="output"></textarea></td> </body> </html> |