Added option to the ol.format.GeoJSON to allow the reading of the geometry_name from the geojson.
This commit is contained in:
@@ -140,6 +140,11 @@ GeoJSONFeature.prototype.id;
|
|||||||
GeoJSONFeature.prototype.properties;
|
GeoJSONFeature.prototype.properties;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {string|undefined}
|
||||||
|
*/
|
||||||
|
GeoJSONFeature.prototype.geometry_name;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
|
|||||||
@@ -1994,6 +1994,7 @@ olx.format.WriteOptions.prototype.decimals;
|
|||||||
/**
|
/**
|
||||||
* @typedef {{defaultDataProjection: ol.ProjectionLike,
|
* @typedef {{defaultDataProjection: ol.ProjectionLike,
|
||||||
* geometryName: (string|undefined),
|
* geometryName: (string|undefined),
|
||||||
|
* readGeometryNameFromGeoJSON: (boolean|undefined),
|
||||||
* featureProjection: ol.ProjectionLike}}
|
* featureProjection: ol.ProjectionLike}}
|
||||||
*/
|
*/
|
||||||
olx.format.GeoJSONOptions;
|
olx.format.GeoJSONOptions;
|
||||||
@@ -2024,6 +2025,17 @@ olx.format.GeoJSONOptions.prototype.featureProjection;
|
|||||||
olx.format.GeoJSONOptions.prototype.geometryName;
|
olx.format.GeoJSONOptions.prototype.geometryName;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Certain GeoJSON providers include the geometry_name field in the feature
|
||||||
|
* geoJSON. If set to `true` the geoJSON reader will look for that field to
|
||||||
|
* set the geometry name. If both this field is set to `true` and a
|
||||||
|
* `geometryName` is provided the `geometryName` will take precedence.
|
||||||
|
* @type {boolean|undefined}
|
||||||
|
* @api
|
||||||
|
*/
|
||||||
|
olx.format.GeoJSONOptions.prototype.readGeometryNameFromGeoJSON;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {{geometryName: (string|undefined)}}
|
* @typedef {{geometryName: (string|undefined)}}
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -53,6 +53,13 @@ ol.format.GeoJSON = function(opt_options) {
|
|||||||
*/
|
*/
|
||||||
this.geometryName_ = options.geometryName;
|
this.geometryName_ = options.geometryName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Look for the geometry name in the feature GeoJSON
|
||||||
|
* @type {boolean|undefined}
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
this.readGeometryNameFromGeoJSON_ = options.readGeometryNameFromGeoJSON;
|
||||||
|
|
||||||
};
|
};
|
||||||
ol.inherits(ol.format.GeoJSON, ol.format.JSONFeature);
|
ol.inherits(ol.format.GeoJSON, ol.format.JSONFeature);
|
||||||
|
|
||||||
@@ -377,6 +384,8 @@ ol.format.GeoJSON.prototype.readFeatureFromObject = function(
|
|||||||
var feature = new ol.Feature();
|
var feature = new ol.Feature();
|
||||||
if (this.geometryName_) {
|
if (this.geometryName_) {
|
||||||
feature.setGeometryName(this.geometryName_);
|
feature.setGeometryName(this.geometryName_);
|
||||||
|
} else if (this.readGeometryNameFromGeoJSON_ && geoJSONFeature.geometry_name !== undefined) {
|
||||||
|
feature.setGeometryName(geoJSONFeature.geometry_name);
|
||||||
}
|
}
|
||||||
feature.setGeometry(geometry);
|
feature.setGeometry(geometry);
|
||||||
if (geoJSONFeature.id !== undefined) {
|
if (geoJSONFeature.id !== undefined) {
|
||||||
|
|||||||
Reference in New Issue
Block a user