diff options
Diffstat (limited to 'misc/openlayers/examples/draw-undo-redo.js')
-rw-r--r-- | misc/openlayers/examples/draw-undo-redo.js | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/misc/openlayers/examples/draw-undo-redo.js b/misc/openlayers/examples/draw-undo-redo.js new file mode 100644 index 0000000..73900ab --- /dev/null +++ b/misc/openlayers/examples/draw-undo-redo.js @@ -0,0 +1,45 @@ +var map = new OpenLayers.Map({ + div: "map", + layers: [ + new OpenLayers.Layer.WMS( + "Global Imagery", + "http://maps.opengeo.org/geowebcache/service/wms", + {layers: "bluemarble"}, + {tileOrigin: new OpenLayers.LonLat(-180, -90)} + ), + new OpenLayers.Layer.Vector() + ], + center: new OpenLayers.LonLat(0, 0), + zoom: 1 +}); + +var draw = new OpenLayers.Control.DrawFeature( + map.layers[1], OpenLayers.Handler.Path +); +map.addControl(draw); +draw.activate(); + +OpenLayers.Event.observe(document, "keydown", function(evt) { + var handled = false; + switch (evt.keyCode) { + case 90: // z + if (evt.metaKey || evt.ctrlKey) { + draw.undo(); + handled = true; + } + break; + case 89: // y + if (evt.metaKey || evt.ctrlKey) { + draw.redo(); + handled = true; + } + break; + case 27: // esc + draw.cancel(); + handled = true; + break; + } + if (handled) { + OpenLayers.Event.stop(evt); + } +});
\ No newline at end of file |