From 9543ce4d4aed24734eb24f8d2f96ae4dbe290155 Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Mon, 21 Jan 2013 17:57:12 -0700 Subject: [PATCH] Initial filter package, geometry type filtering only for now --- src/ol/filter/filter.js | 17 ++++++++++++ src/ol/filter/geometryfilter.js | 47 +++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 src/ol/filter/filter.js create mode 100644 src/ol/filter/geometryfilter.js diff --git a/src/ol/filter/filter.js b/src/ol/filter/filter.js new file mode 100644 index 0000000000..45f0f3eff8 --- /dev/null +++ b/src/ol/filter/filter.js @@ -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) {}; diff --git a/src/ol/filter/geometryfilter.js b/src/ol/filter/geometryfilter.js new file mode 100644 index 0000000000..f9b46176c7 --- /dev/null +++ b/src/ol/filter/geometryfilter.js @@ -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_; +}; +