diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index 74880c43e9..9b4a279384 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -143,10 +143,10 @@ ol.geom.MultiPolygon.prototype.getSimplifiedGeometryInternal = function(squaredTolerance) { var simplifiedFlatCoordinates = []; var simplifiedEndss = []; - simplifiedFlatCoordinates.length = - ol.geom.simplify.douglasPeuckerss(this.flatCoordinates, 0, - this.endss_, this.stride, squaredTolerance, simplifiedFlatCoordinates, - 0, simplifiedEndss); + simplifiedFlatCoordinates.length = ol.geom.simplify.schaubss( + this.flatCoordinates, 0, this.endss_, this.stride, + Math.sqrt(squaredTolerance), + simplifiedFlatCoordinates, 0, simplifiedEndss); var simplifiedMultiPolygon = new ol.geom.MultiPolygon(null); simplifiedMultiPolygon.setFlatCoordinates( ol.geom.GeometryLayout.XY, simplifiedFlatCoordinates, simplifiedEndss); diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index 9300613f4b..a678b4e14b 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -157,8 +157,9 @@ ol.geom.Polygon.prototype.getSimplifiedGeometryInternal = function(squaredTolerance) { var simplifiedFlatCoordinates = []; var simplifiedEnds = []; - simplifiedFlatCoordinates.length = ol.geom.simplify.douglasPeuckers( - this.flatCoordinates, 0, this.ends_, this.stride, squaredTolerance, + simplifiedFlatCoordinates.length = ol.geom.simplify.schaubs( + this.flatCoordinates, 0, this.ends_, this.stride, + Math.sqrt(squaredTolerance), simplifiedFlatCoordinates, 0, simplifiedEnds); var simplifiedPolygon = new ol.geom.Polygon(null); simplifiedPolygon.setFlatCoordinates( diff --git a/test/spec/ol/geom/polygon.test.js b/test/spec/ol/geom/polygon.test.js index a4410ff881..1f6e57089d 100644 --- a/test/spec/ol/geom/polygon.test.js +++ b/test/spec/ol/geom/polygon.test.js @@ -321,17 +321,17 @@ describe('ol.geom.Polygon', function() { describe('#getSimplifiedGeometry', function() { it('returns the expected result', function() { - var simplifiedGeometry = polygon.getSimplifiedGeometry(1); + var simplifiedGeometry = polygon.getSimplifiedGeometry(9); expect(simplifiedGeometry).to.be.an(ol.geom.Polygon); expect(simplifiedGeometry.getCoordinates()).to.eql( - [[[3, 0], [0, 6], [6, 6], [4, 3]]]); + [[[3, 0], [0, 3], [0, 6], [6, 6], [3, 3]]]); }); it('caches multiple simplified geometries', function() { - var simplifiedGeometry1 = polygon.getSimplifiedGeometry(1); - var simplifiedGeometry2 = polygon.getSimplifiedGeometry(2); - var simplifiedGeometry3 = polygon.getSimplifiedGeometry(1); - var simplifiedGeometry4 = polygon.getSimplifiedGeometry(2); + var simplifiedGeometry1 = polygon.getSimplifiedGeometry(4); + var simplifiedGeometry2 = polygon.getSimplifiedGeometry(9); + var simplifiedGeometry3 = polygon.getSimplifiedGeometry(4); + var simplifiedGeometry4 = polygon.getSimplifiedGeometry(9); expect(simplifiedGeometry1).to.be(simplifiedGeometry3); expect(simplifiedGeometry2).to.be(simplifiedGeometry4); });