From d35c40f81f015f6e12d738b3408287c5ba69e873 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 21 Jan 2014 08:12:22 +0100 Subject: [PATCH] Create linear rings directly from flat coordinates --- src/ol/geom/polygon.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index a1ae17778e..bcd1dabd7e 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -153,11 +153,18 @@ ol.geom.Polygon.prototype.getInteriorPoint = function() { * @return {Array.} Linear rings. */ ol.geom.Polygon.prototype.getLinearRings = function() { + var layout = this.layout; + var flatCoordinates = this.flatCoordinates; + var ends = this.ends_; var linearRings = []; - var coordinates = this.getCoordinates(); + var offset = 0; var i, ii; - for (i = 0, ii = coordinates.length; i < ii; ++i) { - linearRings.push(new ol.geom.LinearRing(coordinates[i])); + for (i = 0, ii = ends.length; i < ii; ++i) { + var end = ends[i]; + var linearRing = new ol.geom.LinearRing(null); + linearRing.setFlatCoordinates(layout, flatCoordinates.slice(offset, end)); + linearRings.push(linearRing); + offset = end; } return linearRings; };