From f32d491d45079a39cecf41dcc96434c2c509e6c7 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Fri, 7 Mar 2014 15:04:39 +0100 Subject: [PATCH] Fix calculation of ends in ol.geom.MultiPolygon#getPolygons --- src/ol/geom/multipolygon.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index 4b8db45894..214398858a 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -215,13 +215,19 @@ ol.geom.MultiPolygon.prototype.getPolygons = function() { var endss = this.endss_; var polygons = []; var offset = 0; - var i, ii; + var i, ii, j, jj; for (i = 0, ii = endss.length; i < ii; ++i) { var ends = endss[i]; var end = ends[ends.length - 1]; var polygon = new ol.geom.Polygon(null); + var polygonEnds = ends.slice(); + if (offset !== 0) { + for (j = 0, jj = polygonEnds.length; j < jj; ++j) { + polygonEnds[j] = polygonEnds[j] - offset; + } + } polygon.setFlatCoordinates( - layout, flatCoordinates.slice(offset, end), ends.slice()); + layout, flatCoordinates.slice(offset, end), polygonEnds); polygons.push(polygon); offset = end; }