78 lines
1.4 KiB
JavaScript
78 lines
1.4 KiB
JavaScript
goog.provide('ol.Feature');
|
|
|
|
goog.require('ol.geom.Geometry');
|
|
|
|
|
|
|
|
/**
|
|
* @export
|
|
* @constructor
|
|
*/
|
|
ol.Feature = function() {
|
|
|
|
/**
|
|
* @private
|
|
* @type {ol.geom.Geometry}
|
|
*/
|
|
this.geometry_ = null;
|
|
|
|
/**
|
|
* @private
|
|
* @type {Object}
|
|
*/
|
|
this.attributes_ = {};
|
|
|
|
};
|
|
|
|
/**
|
|
* @return {ol.geom.Geometry} The geometry associated with the feature.
|
|
*/
|
|
ol.Feature.prototype.getGeometry = function() {
|
|
return this.geometry_;
|
|
};
|
|
|
|
/**
|
|
* @param {ol.geom.Geometry} geom the geometry for the feature.
|
|
*/
|
|
ol.Feature.prototype.setGeometry = function(geom) {
|
|
this.geometry_ = geom;
|
|
};
|
|
|
|
|
|
/**
|
|
* @param {!string} name the attribute value to retrieve.
|
|
@return {string|number|boolean} the attribute value.
|
|
*/
|
|
ol.Feature.prototype.getAttribute = function(name) {
|
|
return this.attributes_[name];
|
|
};
|
|
|
|
|
|
/**
|
|
* @param {!string} name of the attribute to set.
|
|
* @param {string|number|boolean} value the attribute value to set.
|
|
*/
|
|
ol.Feature.prototype.setAttribute = function(name, value) {
|
|
this.attributes_[name] = value;
|
|
};
|
|
|
|
|
|
/**
|
|
* @param {Object} attrs An json structure containing key/value pairs.
|
|
*/
|
|
ol.Feature.prototype.setAttributes = function(attrs) {
|
|
for (var key in attrs) {
|
|
this.setAttribute(key, attrs[key]);
|
|
}
|
|
};
|
|
|
|
|
|
/**
|
|
*/
|
|
ol.Feature.prototype.destroy = function() {
|
|
//remove attributes and geometry, etc.
|
|
for (var key in this) {
|
|
delete this[key];
|
|
}
|
|
};
|