I'm trying to retrieve a list of all values from a raster layer (GeoTIFF) in GeoServer (2.5.x). I tried to modify the code from http://trac.osgeo.org/openlayers/wiki/GetFeatureInfo but I can't seem to find a way to do this. I create a custom control that uses the `OpenLayers.Handler.Box` as input. This gives me back the right bounds (selected rectangle coordinates) but how do I send the bounds to GeoServer WMS? I can code a Python module to send the bounds to and extract the values from the raster and send it back to my web application but I thought this must be possible from within OpenLayers? Does anyone have an example of how do extract a range of values from a raster using GeoServer and OpenLayers? My code so far: function findLayerClick(event) { mouseLoc = map.getLonLatFromPixel(event.xy); layerlist = 'mylayer'; //GetCoverage var url = sec.getFullRequestString({ REQUEST: "GetFeatureInfo", EXCEPTIONS: "application/vnd.ogc.se_xml", BBOX: map.getExtent().toBBOX(), X: event.xy.x, Y: event.xy.y, INFO_FORMAT: 'text/plain', QUERY_LAYERS: layerlist, FEATURE_COUNT: 50, WIDTH: map.size.w, HEIGHT: map.size.h}, "http://localhost:8080/geoserver/wms"); var request = OpenLayers.Request.GET({ url: url, callback: extractFeatures }); } function extractFeatures(e) { console.log(e); } My map, layers, and the control handling the box select: function init() { wgs84 = new OpenLayers.Projection('EPSG:4326'); googleProjection = new OpenLayers.Projection('EPSG:900913'); var options = { controls: [ new OpenLayers.Control.LayerSwitcher(), new OpenLayers.Control.Navigation({zoomWheelEnabled: true, handleRightClicks: true}), new OpenLayers.Control.PanZoom(), new OpenLayers.Control.DragPan(), new OpenLayers.Control.ScaleLine({maxWidth:200}) ], div: 'map-canvas', theme: null, units: 'm', projection: googleProjection, displayProjection: wgs84, maxResolution: 'auto', eventListeners: { 'movestart': function(e) { }, 'zoomend': function(e) { zoomBoxControl.deactivate(); } } }; map = new OpenLayers.Map(options); var ghyb = new OpenLayers.Layer.Google( "Google Physical", { type: google.maps.MapTypeId.TERRAIN, minZoomLevel: 1, numZoomLevels: 11, sphericalMercator: true, projection: 'EPSG:900913' } ); //this is the raster layer sec = new OpenLayers.Layer.WMS( "mylayer", "http://localhost:8080/geoserver/wms", {layers: 'mylayer', format:'image/png', transparent:'true'}, {opacity: 1.0, visibility: true, displayInLayerSwitcher: true, isBaseLayer: false} ); OpenLayers.Util.extend(control, { draw: function () { this.drag = new OpenLayers.Handler.Box( control, {"done": this.notice}, {keyMask: OpenLayers.Handler.MOD_CTRL}); this.drag.activate(); }, notice: function (bounds) { mybounds = bounds; console.log(mybounds); var lowerLeft = map.getLonLatFromPixel(new OpenLayers.Pixel(mybounds.left, mybounds.bottom)); var upperRight = map.getLonLatFromPixel(new OpenLayers.Pixel(mybounds.right, mybounds.top)); mybounds = new OpenLayers.Bounds(); mybounds.extend(lowerLeft); mybounds.extend(upperRight); //findLayerClick(mybounds); return(true); } }); } The `findLayerClick` function returns back a valid value of a clicked pixel but i need the list (table, array or whatever) of values in the selected range. Hope someone can help me.