diff --git a/examples/extent-interaction.html b/examples/extent-interaction.html new file mode 100644 index 0000000000..cce19e3890 --- /dev/null +++ b/examples/extent-interaction.html @@ -0,0 +1,12 @@ +--- +layout: example.html +title: Extent Interaction +shortdesc: Using an Extent interaction to draw an extent. +docs: > +

This example shows how to use an Extent interaction to draw a modifiable extent.

+

Use Shift+Drag to draw an extent. + Shift+Drag on the corners or edges of the extent to resize it. Shift+Click off the extent to remove it. +

+tags: "Extent, interaction, box" +--- +
diff --git a/examples/extent-interaction.js b/examples/extent-interaction.js new file mode 100644 index 0000000000..11d5918275 --- /dev/null +++ b/examples/extent-interaction.js @@ -0,0 +1,49 @@ +goog.require('ol.Map'); +goog.require('ol.View'); +goog.require('ol.events.condition'); +goog.require('ol.format.GeoJSON'); +goog.require('ol.interaction.Extent'); +goog.require('ol.layer.Tile'); +goog.require('ol.layer.Vector'); +goog.require('ol.source.OSM'); +goog.require('ol.source.Vector'); + +var vectorSource = new ol.source.Vector({ + url: 'data/geojson/countries.geojson', + format: new ol.format.GeoJSON() +}); + +var map = new ol.Map({ + layers: [ + new ol.layer.Tile({ + source: new ol.source.OSM() + }), + new ol.layer.Vector({ + source: vectorSource + }) + ], + renderer: 'canvas', + target: 'map', + view: new ol.View({ + center: [0, 0], + zoom: 2 + }) +}); + +var extent = new ol.interaction.Extent({ + condition: ol.events.condition.platformModifierKeyOnly +}); +map.addInteraction(extent); +extent.setActive(false); + +//Enable interaction by holding shift +this.addEventListener('keydown', function(event) { + if (event.keyCode == 16) { + extent.setActive(true); + } +}); +this.addEventListener('keyup', function(event) { + if (event.keyCode == 16) { + extent.setActive(false); + } +});