Merge pull request #1705 from tonio/geojson_null_geometry

Allow GeoJSON features to have `null` geometries.
This commit is contained in:
Antoine Abt
2014-02-17 08:23:05 +01:00
2 changed files with 19 additions and 0 deletions

View File

@@ -57,6 +57,9 @@ ol.format.GeoJSON.EXTENSIONS_ = ['.geojson'];
* @return {ol.geom.Geometry} Geometry.
*/
ol.format.GeoJSON.readGeometry_ = function(object) {
if (goog.isNull(object)) {
return null;
}
var geometryReader = ol.format.GeoJSON.GEOMETRY_READERS_[object.type];
goog.asserts.assert(goog.isDef(geometryReader));
return geometryReader(object);

View File

@@ -19,6 +19,14 @@ describe('ol.format.GeoJSON', function() {
}
};
var nullGeometryGeoJSON = {
'type': 'Feature',
'geometry': null,
'properties': {
'prop0': 'value0'
}
};
var lineStringGeoJSON = {
'type': 'Feature',
'geometry': {
@@ -150,6 +158,14 @@ describe('ol.format.GeoJSON', function() {
expect(feature.get('prop1')).to.eql({'this': 'that'});
});
it('can read a feature with null geometry', function() {
var feature = format.readFeature(nullGeometryGeoJSON);
expect(feature).to.be.an(ol.Feature);
var geometry = feature.getGeometry();
expect(geometry).to.eql(null);
expect(feature.get('prop0')).to.be('value0');
});
it('can read a feature collection', function() {
var features = format.readFeatures(featureCollectionGeoJSON);
expect(features).to.have.length(3);