Create polygons directly from flat coordinates

This commit is contained in:
Tom Payne
2014-01-21 08:49:10 +01:00
parent d35c40f81f
commit d39a5cec75
+12 -4
View File
@@ -191,12 +191,20 @@ ol.geom.MultiPolygon.prototype.getSimplifiedGeometryInternal =
* @return {Array.<ol.geom.Polygon>} Polygons. * @return {Array.<ol.geom.Polygon>} Polygons.
*/ */
ol.geom.MultiPolygon.prototype.getPolygons = function() { ol.geom.MultiPolygon.prototype.getPolygons = function() {
// FIXME we should construct the polygons directly from the flat coordinates var layout = this.layout;
var coordinates = this.getCoordinates(); var flatCoordinates = this.flatCoordinates;
var endss = this.endss_;
var polygons = []; var polygons = [];
var offset = 0;
var i, ii; var i, ii;
for (i = 0, ii = coordinates.length; i < ii; ++i) { for (i = 0, ii = endss.length; i < ii; ++i) {
polygons.push(new ol.geom.Polygon(coordinates[i])); var ends = endss[i];
var end = ends[ends.length - 1];
var polygon = new ol.geom.Polygon(null);
polygon.setFlatCoordinates(
layout, flatCoordinates.slice(offset, end), ends.slice());
polygons.push(polygon);
offset = end;
} }
return polygons; return polygons;
}; };