Initial filter package, geometry type filtering only for now

This commit is contained in:
Tim Schaub
2013-01-21 17:57:12 -07:00
parent 89bc69ccc1
commit 9543ce4d4a
2 changed files with 64 additions and 0 deletions

17
src/ol/filter/filter.js Normal file
View File

@@ -0,0 +1,17 @@
goog.provide('ol.filter.Filter');
goog.require('ol.Feature');
/**
* @interface
*/
ol.filter.Filter = function() {};
/**
* @param {ol.Feature} feature Feature to evaluate.
* @return {boolean} The provided feature passes this filter.
*/
ol.filter.Filter.prototype.evaluate = function(feature) {};

View File

@@ -0,0 +1,47 @@
goog.provide('ol.filter.Geometry');
goog.provide('ol.filter.GeometryType');
goog.require('ol.Feature');
goog.require('ol.filter.Filter');
goog.require('ol.geom.GeometryType');
goog.require('ol.geom.LineString');
goog.require('ol.geom.MultiLineString');
goog.require('ol.geom.MultiPoint');
goog.require('ol.geom.MultiPolygon');
goog.require('ol.geom.Point');
goog.require('ol.geom.Polygon');
/**
* @constructor
* @implements {ol.filter.Filter}
* @param {ol.geom.GeometryType} type The geometry type.
*/
ol.filter.Geometry = function(type) {
/**
* @type {ol.geom.GeometryType}
* @private
*/
this.type_ = type;
};
/**
* @inheritDoc
*/
ol.filter.Geometry.prototype.evaluate = function(feature) {
var geometry = feature.getGeometry();
return goog.isNull(geometry) ? false : geometry.getType() === this.type_;
};
/**
* @return {ol.geom.GeometryType} The geometry type.
*/
ol.filter.Geometry.prototype.getType = function() {
return this.type_;
};