diff --git a/src/ol/geom/linearring.exports b/src/ol/geom/linearring.exports index ab788b38a3..568949b1bb 100644 --- a/src/ol/geom/linearring.exports +++ b/src/ol/geom/linearring.exports @@ -1,4 +1,5 @@ @exportSymbol ol.geom.LinearRing +@exportProperty ol.geom.LinearRing.prototype.clone @exportProperty ol.geom.LinearRing.prototype.getArea @exportProperty ol.geom.LinearRing.prototype.getCoordinates @exportProperty ol.geom.LinearRing.prototype.getType diff --git a/src/ol/geom/linearring.js b/src/ol/geom/linearring.js index 1407d5b74c..622e56776d 100644 --- a/src/ol/geom/linearring.js +++ b/src/ol/geom/linearring.js @@ -36,6 +36,16 @@ ol.geom.LinearRing = function(coordinates, opt_layout) { goog.inherits(ol.geom.LinearRing, ol.geom.SimpleGeometry); +/** + * @inheritDoc + */ +ol.geom.LinearRing.prototype.clone = function() { + var linearRing = new ol.geom.LinearRing(null); + linearRing.setFlatCoordinates(this.layout, this.flatCoordinates.slice()); + return linearRing; +}; + + /** * @inheritDoc */ diff --git a/src/ol/geom/linestring.exports b/src/ol/geom/linestring.exports index 362c1b1042..8de2df528c 100644 --- a/src/ol/geom/linestring.exports +++ b/src/ol/geom/linestring.exports @@ -1,4 +1,5 @@ @exportSymbol ol.geom.LineString +@exportProperty ol.geom.LineString.prototype.clone @exportProperty ol.geom.LineString.prototype.getCoordinates @exportProperty ol.geom.LineString.prototype.getType @exportProperty ol.geom.LineString.prototype.setCoordinates diff --git a/src/ol/geom/linestring.js b/src/ol/geom/linestring.js index 74258465d9..ead7a2ad91 100644 --- a/src/ol/geom/linestring.js +++ b/src/ol/geom/linestring.js @@ -36,6 +36,16 @@ ol.geom.LineString = function(coordinates, opt_layout) { goog.inherits(ol.geom.LineString, ol.geom.SimpleGeometry); +/** + * @inheritDoc + */ +ol.geom.LineString.prototype.clone = function() { + var lineString = new ol.geom.LineString(null); + lineString.setFlatCoordinates(this.layout, this.flatCoordinates.slice()); + return lineString; +}; + + /** * @inheritDoc */ diff --git a/src/ol/geom/multilinestring.exports b/src/ol/geom/multilinestring.exports index 6cea01324c..47f28467da 100644 --- a/src/ol/geom/multilinestring.exports +++ b/src/ol/geom/multilinestring.exports @@ -1,4 +1,5 @@ @exportSymbol ol.geom.MultiLineString +@exportProperty ol.geom.MultiLineString.prototype.clone @exportProperty ol.geom.MultiLineString.prototype.getCoordinates @exportProperty ol.geom.MultiLineString.prototype.getLineStrings @exportProperty ol.geom.MultiLineString.prototype.getType diff --git a/src/ol/geom/multilinestring.js b/src/ol/geom/multilinestring.js index 9ab574574f..18b00c2eb6 100644 --- a/src/ol/geom/multilinestring.js +++ b/src/ol/geom/multilinestring.js @@ -43,6 +43,17 @@ ol.geom.MultiLineString = function(coordinates, opt_layout) { goog.inherits(ol.geom.MultiLineString, ol.geom.SimpleGeometry); +/** + * @inheritDoc + */ +ol.geom.MultiLineString.prototype.clone = function() { + var multiLineString = new ol.geom.MultiLineString(null); + multiLineString.setFlatCoordinates( + this.layout, this.flatCoordinates.slice(), this.ends_.slice()); + return multiLineString; +}; + + /** * @inheritDoc */ diff --git a/src/ol/geom/multipoint.exports b/src/ol/geom/multipoint.exports index eb89fe7d5d..97dff56f42 100644 --- a/src/ol/geom/multipoint.exports +++ b/src/ol/geom/multipoint.exports @@ -1,4 +1,5 @@ @exportSymbol ol.geom.MultiPoint +@exportProperty ol.geom.MultiPoint.prototype.clone @exportProperty ol.geom.MultiPoint.prototype.getCoordinates @exportProperty ol.geom.MultiPoint.prototype.getPoints @exportProperty ol.geom.MultiPoint.prototype.getType diff --git a/src/ol/geom/multipoint.js b/src/ol/geom/multipoint.js index 5a8fd5282f..35185d244e 100644 --- a/src/ol/geom/multipoint.js +++ b/src/ol/geom/multipoint.js @@ -20,6 +20,16 @@ ol.geom.MultiPoint = function(coordinates, opt_layout) { goog.inherits(ol.geom.MultiPoint, ol.geom.SimpleGeometry); +/** + * @inheritDoc + */ +ol.geom.MultiPoint.prototype.clone = function() { + var multiPoint = new ol.geom.MultiPoint(null); + multiPoint.setFlatCoordinates(this.layout, this.flatCoordinates.slice()); + return multiPoint; +}; + + /** * @inheritDoc */ diff --git a/src/ol/geom/multipolygon.exports b/src/ol/geom/multipolygon.exports index e8e244a0aa..3bc1d385c7 100644 --- a/src/ol/geom/multipolygon.exports +++ b/src/ol/geom/multipolygon.exports @@ -1,4 +1,5 @@ @exportSymbol ol.geom.MultiPolygon +@exportProperty ol.geom.MultiPolygon.prototype.clone @exportProperty ol.geom.MultiPolygon.prototype.getArea @exportProperty ol.geom.MultiPolygon.prototype.getCoordinates @exportProperty ol.geom.MultiPolygon.prototype.getPolygons diff --git a/src/ol/geom/multipolygon.js b/src/ol/geom/multipolygon.js index ac7554874a..74880c43e9 100644 --- a/src/ol/geom/multipolygon.js +++ b/src/ol/geom/multipolygon.js @@ -55,6 +55,17 @@ ol.geom.MultiPolygon = function(coordinates, opt_layout) { goog.inherits(ol.geom.MultiPolygon, ol.geom.SimpleGeometry); +/** + * @inheritDoc + */ +ol.geom.MultiPolygon.prototype.clone = function() { + var multiPolygon = new ol.geom.MultiPolygon(null); + multiPolygon.setFlatCoordinates( + this.layout, this.flatCoordinates.slice(), this.endss_.slice()); + return multiPolygon; +}; + + /** * @inheritDoc */ diff --git a/src/ol/geom/point.exports b/src/ol/geom/point.exports index 4125ad3ab1..f48a3b7a4d 100644 --- a/src/ol/geom/point.exports +++ b/src/ol/geom/point.exports @@ -1,4 +1,5 @@ @exportSymbol ol.geom.Point +@exportProperty ol.geom.Point.prototype.clone @exportProperty ol.geom.Point.prototype.getCoordinates @exportProperty ol.geom.Point.prototype.getType @exportProperty ol.geom.Point.prototype.setCoordinates diff --git a/src/ol/geom/point.js b/src/ol/geom/point.js index 6ae66ad28a..57e10e4fd5 100644 --- a/src/ol/geom/point.js +++ b/src/ol/geom/point.js @@ -20,6 +20,16 @@ ol.geom.Point = function(coordinates, opt_layout) { goog.inherits(ol.geom.Point, ol.geom.SimpleGeometry); +/** + * @inheritDoc + */ +ol.geom.Point.prototype.clone = function() { + var point = new ol.geom.Point(null); + point.setFlatCoordinates(this.layout, this.flatCoordinates.slice()); + return point; +}; + + /** * @inheritDoc */ diff --git a/src/ol/geom/polygon.exports b/src/ol/geom/polygon.exports index 1b2fa4f0aa..d950a3ae05 100644 --- a/src/ol/geom/polygon.exports +++ b/src/ol/geom/polygon.exports @@ -1,4 +1,5 @@ @exportSymbol ol.geom.Polygon +@exportProperty ol.geom.Polygon.prototype.clone @exportProperty ol.geom.Polygon.prototype.getArea @exportProperty ol.geom.Polygon.prototype.getCoordinates @exportProperty ol.geom.Polygon.prototype.getLinearRings diff --git a/src/ol/geom/polygon.js b/src/ol/geom/polygon.js index 601cc849d4..9300613f4b 100644 --- a/src/ol/geom/polygon.js +++ b/src/ol/geom/polygon.js @@ -55,6 +55,17 @@ ol.geom.Polygon = function(coordinates, opt_layout) { goog.inherits(ol.geom.Polygon, ol.geom.SimpleGeometry); +/** + * @inheritDoc + */ +ol.geom.Polygon.prototype.clone = function() { + var polygon = new ol.geom.Polygon(null); + polygon.setFlatCoordinates( + this.layout, this.flatCoordinates.slice(), this.ends_.slice()); + return polygon; +}; + + /** * @inheritDoc */