diff --git a/src/ol/Object.js b/src/ol/Object.js index 59fb349811..d15567aaf8 100644 --- a/src/ol/Object.js +++ b/src/ol/Object.js @@ -188,6 +188,18 @@ class BaseObject extends Observable { } } + /** + * Apply any properties from another object without triggering events. + * @param {BaseObject} source The source object. + * @protected + */ + applyProperties(source) { + if (!source.values_) { + return; + } + assign(this.values_ || (this.values_ = {}), source.values_); + } + /** * Unsets a property. * @param {string} key Key name. diff --git a/src/ol/geom/Circle.js b/src/ol/geom/Circle.js index 644a89cf1e..ddd87ca1cb 100644 --- a/src/ol/geom/Circle.js +++ b/src/ol/geom/Circle.js @@ -42,7 +42,7 @@ class Circle extends SimpleGeometry { undefined, this.layout ); - circle.importPropertiesFrom(this); + circle.applyProperties(this); return circle; } diff --git a/src/ol/geom/Geometry.js b/src/ol/geom/Geometry.js index be648f7a11..e7d7cd26f0 100644 --- a/src/ol/geom/Geometry.js +++ b/src/ol/geom/Geometry.js @@ -109,17 +109,6 @@ class Geometry extends BaseObject { return abstract(); } - /** - * Import properties from another geometry. - * @param {Geometry} geometry Source geometry. - * @protected - */ - importPropertiesFrom(geometry) { - if (geometry.hasProperties()) { - this.setProperties(geometry.getProperties(), true); - } - } - /** * @abstract * @param {number} x X. diff --git a/src/ol/geom/GeometryCollection.js b/src/ol/geom/GeometryCollection.js index f4b17ac001..f18a6500fe 100644 --- a/src/ol/geom/GeometryCollection.js +++ b/src/ol/geom/GeometryCollection.js @@ -69,7 +69,7 @@ class GeometryCollection extends Geometry { clone() { const geometryCollection = new GeometryCollection(null); geometryCollection.setGeometries(this.geometries_); - geometryCollection.importPropertiesFrom(this); + geometryCollection.applyProperties(this); return geometryCollection; } diff --git a/src/ol/geom/LineString.js b/src/ol/geom/LineString.js index 1bb5a75c1f..4bbee3069c 100644 --- a/src/ol/geom/LineString.js +++ b/src/ol/geom/LineString.js @@ -91,7 +91,7 @@ class LineString extends SimpleGeometry { this.flatCoordinates.slice(), this.layout ); - lineString.importPropertiesFrom(this); + lineString.applyProperties(this); return lineString; } diff --git a/src/ol/geom/MultiLineString.js b/src/ol/geom/MultiLineString.js index 8ab28379ef..61901868b0 100644 --- a/src/ol/geom/MultiLineString.js +++ b/src/ol/geom/MultiLineString.js @@ -107,7 +107,7 @@ class MultiLineString extends SimpleGeometry { this.layout, this.ends_.slice() ); - multiLineString.importPropertiesFrom(this); + multiLineString.applyProperties(this); return multiLineString; } diff --git a/src/ol/geom/MultiPoint.js b/src/ol/geom/MultiPoint.js index 0829353739..2f152e66e7 100644 --- a/src/ol/geom/MultiPoint.js +++ b/src/ol/geom/MultiPoint.js @@ -61,7 +61,7 @@ class MultiPoint extends SimpleGeometry { this.flatCoordinates.slice(), this.layout ); - multiPoint.importPropertiesFrom(this); + multiPoint.applyProperties(this); return multiPoint; } diff --git a/src/ol/geom/MultiPolygon.js b/src/ol/geom/MultiPolygon.js index 1a3084b2c0..0e36511b4b 100644 --- a/src/ol/geom/MultiPolygon.js +++ b/src/ol/geom/MultiPolygon.js @@ -160,7 +160,7 @@ class MultiPolygon extends SimpleGeometry { this.layout, newEndss ); - multiPolygon.importPropertiesFrom(this); + multiPolygon.applyProperties(this); return multiPolygon; } diff --git a/src/ol/geom/Point.js b/src/ol/geom/Point.js index a9ef7e641b..3f5801600c 100644 --- a/src/ol/geom/Point.js +++ b/src/ol/geom/Point.js @@ -30,7 +30,7 @@ class Point extends SimpleGeometry { */ clone() { const point = new Point(this.flatCoordinates.slice(), this.layout); - point.importPropertiesFrom(this); + point.applyProperties(this); return point; } diff --git a/src/ol/geom/Polygon.js b/src/ol/geom/Polygon.js index 009337d253..e0c169025b 100644 --- a/src/ol/geom/Polygon.js +++ b/src/ol/geom/Polygon.js @@ -123,7 +123,7 @@ class Polygon extends SimpleGeometry { this.layout, this.ends_.slice() ); - polygon.importPropertiesFrom(this); + polygon.applyProperties(this); return polygon; }