Merge pull request #1845 from tschaub/buffered

Track replay group resolution and buffer max extent to capture strokes.
This commit is contained in:
Tim Schaub
2014-03-17 08:50:07 -06:00
4 changed files with 130 additions and 17 deletions

View File

@@ -7,7 +7,7 @@ describe('ol.render.canvas.Replay', function() {
it('creates a new replay batch', function() {
var tolerance = 10;
var extent = [-180, -90, 180, 90];
var replay = new ol.render.canvas.Replay(tolerance, extent);
var replay = new ol.render.canvas.Replay(tolerance, extent, 1);
expect(replay).to.be.a(ol.render.canvas.Replay);
});
@@ -17,7 +17,7 @@ describe('ol.render.canvas.Replay', function() {
var replay;
beforeEach(function() {
replay = new ol.render.canvas.Replay(1, [-180, -90, 180, 90]);
replay = new ol.render.canvas.Replay(1, [-180, -90, 180, 90], 1);
});
it('appends coordinates that are within the max extent', function() {
@@ -78,4 +78,49 @@ describe('ol.render.canvas.Replay', function() {
});
describe('ol.render.canvas.LineStringReplay', function() {
describe('#getBufferedMaxExtent()', function() {
it('buffers the max extent to accomodate stroke width', function() {
var tolerance = 1;
var extent = [-180, -90, 180, 90];
var resolution = 10;
var replay = new ol.render.canvas.LineStringReplay(tolerance, extent,
resolution);
var stroke = new ol.style.Stroke({
width: 2
});
replay.setFillStrokeStyle(null, stroke);
var buffered = replay.getBufferedMaxExtent();
expect(buffered).to.eql([-195, -105, 195, 105]);
});
});
});
describe('ol.render.canvas.PolygonReplay', function() {
describe('#getBufferedMaxExtent()', function() {
it('buffers the max extent to accomodate stroke width', function() {
var tolerance = 1;
var extent = [-180, -90, 180, 90];
var resolution = 10;
var replay = new ol.render.canvas.PolygonReplay(tolerance, extent,
resolution);
var stroke = new ol.style.Stroke({
width: 5
});
replay.setFillStrokeStyle(null, stroke);
var buffered = replay.getBufferedMaxExtent();
expect(buffered).to.eql([-210, -120, 210, 120]);
});
});
});
goog.require('ol.render.canvas.Replay');
goog.require('ol.style.Stroke');