summaryrefslogtreecommitdiff
path: root/misc/openlayers/examples/draw-undo-redo.js
diff options
context:
space:
mode:
Diffstat (limited to 'misc/openlayers/examples/draw-undo-redo.js')
-rw-r--r--misc/openlayers/examples/draw-undo-redo.js45
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