diff --git a/src/ol/extent.js b/src/ol/extent.js index 762d26a3d0..58046e2930 100644 --- a/src/ol/extent.js +++ b/src/ol/extent.js @@ -51,15 +51,27 @@ ol.extent.boundingExtentXYs_ = function(xs, ys, opt_extent) { /** - * Increase an extent by the provided value. - * @param {ol.Extent} extent The extent to buffer. + * Return extent increased by the provided value. + * @param {ol.Extent} extent Extent. * @param {number} value The amount by wich the extent should be buffered. + * @param {ol.Extent=} opt_extent Extent. + * @return {ol.Extent} Extent. */ -ol.extent.buffer = function(extent, value) { - extent[0] -= value; - extent[1] -= value; - extent[2] += value; - extent[3] += value; +ol.extent.buffer = function(extent, value, opt_extent) { + if (goog.isDef(opt_extent)) { + opt_extent[0] = extent[0] - value; + opt_extent[1] = extent[1] - value; + opt_extent[2] = extent[2] + value; + opt_extent[3] = extent[3] + value; + return opt_extent; + } else { + return [ + extent[0] - value, + extent[1] - value, + extent[2] + value, + extent[3] + value + ]; + } }; diff --git a/src/ol/tileurlfunction.js b/src/ol/tileurlfunction.js index d193383766..2e0c7a8d0b 100644 --- a/src/ol/tileurlfunction.js +++ b/src/ol/tileurlfunction.js @@ -114,7 +114,7 @@ ol.TileUrlFunction.createFromParamsFunction = tmpSize[0] = tileSize[0] + (2 * gutter); tmpSize[1] = tileSize[1] + (2 * gutter); var extent = tileGrid.getTileCoordExtent(tileCoord, tmpExtent); - ol.extent.buffer(extent, tileResolution * gutter); + ol.extent.buffer(extent, tileResolution * gutter, extent); return paramsFunction.call(this, baseUrl, params, extent, tmpSize, projection); } diff --git a/test/spec/ol/extent.test.js b/test/spec/ol/extent.test.js index 182491d9a6..7cfe5a541b 100644 --- a/test/spec/ol/extent.test.js +++ b/test/spec/ol/extent.test.js @@ -7,8 +7,7 @@ describe('ol.extent', function() { it('buffers an extent by some value', function() { var extent = [-10, -20, 10, 20]; - ol.extent.buffer(extent, 15); - expect(extent).to.eql([-25, -35, 25, 35]); + expect(ol.extent.buffer(extent, 15)).to.eql([-25, -35, 25, 35]); }); });