diff --git a/src/ol/format/geojsonformat.js b/src/ol/format/geojsonformat.js index c29a15b7f2..b8d28be097 100644 --- a/src/ol/format/geojsonformat.js +++ b/src/ol/format/geojsonformat.js @@ -516,6 +516,8 @@ ol.format.GeoJSON.prototype.writeFeatureObject = function( goog.object.remove(properties, feature.getGeometryName()); if (!goog.object.isEmpty(properties)) { object['properties'] = properties; + } else { + object['properties'] = null; } return object; }; diff --git a/test/spec/ol/format/geojsonformat.test.js b/test/spec/ol/format/geojsonformat.test.js index c3f3767832..76b7d1fb51 100644 --- a/test/spec/ol/format/geojsonformat.test.js +++ b/test/spec/ol/format/geojsonformat.test.js @@ -507,6 +507,12 @@ describe('ol.format.GeoJSON', function() { expect(geojson.features[0].properties.mygeom).to.eql(undefined); }); + it('writes out a feature without properties correctly', function() { + var feature = new ol.Feature(new ol.geom.Point([5, 10])); + var geojson = format.writeFeatureObject(feature); + expect(geojson.properties).to.eql(null); + }); + }); describe('#writeGeometry', function() {