diff --git a/src/ol/geom/polygon.exports b/src/ol/geom/polygon.exports index 9f3fa03a83..214d5e02c6 100644 --- a/src/ol/geom/polygon.exports +++ b/src/ol/geom/polygon.exports @@ -4,6 +4,7 @@ @exportProperty ol.geom.Polygon.prototype.getArea @exportProperty ol.geom.Polygon.prototype.getCoordinates @exportProperty ol.geom.Polygon.prototype.getInteriorPoint +@exportProperty ol.geom.Polygon.prototype.getLinearRing @exportProperty ol.geom.Polygon.prototype.getLinearRings @exportProperty ol.geom.Polygon.prototype.getType @exportProperty ol.geom.Polygon.prototype.setCoordinates diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index dea5c42022..1cd2d1fd4e 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -178,6 +178,22 @@ ol.geom.Polygon.prototype.getInteriorPoint = function() { }; +/** + * @param {number} index Index. + * @return {ol.geom.LinearRing} Linear ring. + */ +ol.geom.Polygon.prototype.getLinearRing = function(index) { + goog.asserts.assert(0 <= index && index < this.ends_.length); + if (index < 0 || this.ends_.length <= index) { + return null; + } + var linearRing = new ol.geom.LinearRing(null); + linearRing.setFlatCoordinates(this.layout, this.flatCoordinates.slice( + index === 0 ? 0 : this.ends_[index - 1], this.ends_[index])); + return linearRing; +}; + + /** * @return {Array.