diff --git a/src/ol/format/feature.js b/src/ol/format/feature.js index d4d88c131f..79ae29a4d4 100644 --- a/src/ol/format/feature.js +++ b/src/ol/format/feature.js @@ -206,6 +206,9 @@ ol.format.Feature.transformWithOptions = function( if (Array.isArray(transformed)) { transform(transformed); } else { + if (transformed === geometry) { + transformed = transformed.clone(); + } transformed.applyTransform(transform); } } diff --git a/test/spec/ol/format/geojson.test.js b/test/spec/ol/format/geojson.test.js index f291c2ef5f..95b4271b92 100644 --- a/test/spec/ol/format/geojson.test.js +++ b/test/spec/ol/format/geojson.test.js @@ -826,6 +826,8 @@ describe('ol.format.GeoJSON', function() { }); expect(format.readGeometry(geojson).getCoordinates()).to.eql( [[42.123457, 38.987654], [43, 39]]); + expect(linestring.getCoordinates()).to.eql( + [[42.123456789, 38.987654321], [43, 39]]); }); });