Use Schaub's topology-preserving simplification method for Polygons and MultiPolygons

This commit is contained in:
Tom Payne
2013-12-13 13:52:38 +01:00
parent 5b1bbe15dd
commit 594cee01e4
3 changed files with 13 additions and 12 deletions
+4 -4
View File
@@ -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);
+3 -2
View File
@@ -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(