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;
|
||||
|
||||
|
||||
/**
|
||||
* @type {string|undefined}
|
||||
*/
|
||||
GeoJSONFeature.prototype.geometry_name;
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
|
||||
@@ -1994,6 +1994,7 @@ olx.format.WriteOptions.prototype.decimals;
|
||||
/**
|
||||
* @typedef {{defaultDataProjection: ol.ProjectionLike,
|
||||
* geometryName: (string|undefined),
|
||||
* readGeometryNameFromGeoJSON: (boolean|undefined),
|
||||
* featureProjection: ol.ProjectionLike}}
|
||||
*/
|
||||
olx.format.GeoJSONOptions;
|
||||
@@ -2024,6 +2025,17 @@ olx.format.GeoJSONOptions.prototype.featureProjection;
|
||||
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)}}
|
||||
*/
|
||||
|
||||
@@ -53,6 +53,13 @@ ol.format.GeoJSON = function(opt_options) {
|
||||
*/
|
||||
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);
|
||||
|
||||
@@ -377,6 +384,8 @@ ol.format.GeoJSON.prototype.readFeatureFromObject = function(
|
||||
var feature = new ol.Feature();
|
||||
if (this.geometryName_) {
|
||||
feature.setGeometryName(this.geometryName_);
|
||||
} else if (this.readGeometryNameFromGeoJSON_ && geoJSONFeature.geometry_name !== undefined) {
|
||||
feature.setGeometryName(geoJSONFeature.geometry_name);
|
||||
}
|
||||
feature.setGeometry(geometry);
|
||||
if (geoJSONFeature.id !== undefined) {
|
||||
|
||||
Reference in New Issue
Block a user