Vector layer updates for new extent structure

This commit is contained in:
Tim Schaub
2013-09-03 17:51:06 -06:00
parent 75cb19d7e1
commit 511e5ad5e8
2 changed files with 15 additions and 8 deletions
+14 -7
View File
@@ -107,12 +107,16 @@ ol.layer.FeatureCache.prototype.getFeaturesObject = function(opt_expr) {
} else if (name === ol.expr.functions.EXTENT) { } else if (name === ol.expr.functions.EXTENT) {
var args = /** @type {ol.expr.Call} */ (opt_expr).getArgs(); var args = /** @type {ol.expr.Call} */ (opt_expr).getArgs();
goog.asserts.assert(args.length === 4); goog.asserts.assert(args.length === 4);
var extent = [];
for (var i = 0; i < 4; ++i) { for (var i = 0; i < 4; ++i) {
goog.asserts.assert(args[i] instanceof ol.expr.Literal); goog.asserts.assert(args[i] instanceof ol.expr.Literal);
extent[i] = /** @type {ol.expr.Literal} */ (args[i]).evaluate();
goog.asserts.assertNumber(extent[i]);
} }
var extent = [[
/** @type {ol.expr.Literal} */ (args[0]).evaluate(),
/** @type {ol.expr.Literal} */ (args[1]).evaluate()
], [
/** @type {ol.expr.Literal} */ (args[2]).evaluate(),
/** @type {ol.expr.Literal} */ (args[3]).evaluate()
]];
features = this.rTree_.searchReturningObject(extent); features = this.rTree_.searchReturningObject(extent);
} else { } else {
// not a call expression, check logical // not a call expression, check logical
@@ -133,13 +137,16 @@ ol.layer.FeatureCache.prototype.getFeaturesObject = function(opt_expr) {
} else if (name === ol.expr.functions.EXTENT) { } else if (name === ol.expr.functions.EXTENT) {
args = /** @type {ol.expr.Call} */ (expr).getArgs(); args = /** @type {ol.expr.Call} */ (expr).getArgs();
goog.asserts.assert(args.length === 4); goog.asserts.assert(args.length === 4);
extent = [];
for (var j = 0; j < 4; ++j) { for (var j = 0; j < 4; ++j) {
goog.asserts.assert(args[j] instanceof ol.expr.Literal); goog.asserts.assert(args[j] instanceof ol.expr.Literal);
extent[j] =
/** @type {ol.expr.Literal} */ (args[j]).evaluate();
goog.asserts.assertNumber(extent[j]);
} }
extent = [[
/** @type {ol.expr.Literal} */ (args[0]).evaluate(),
/** @type {ol.expr.Literal} */ (args[1]).evaluate()
], [
/** @type {ol.expr.Literal} */ (args[2]).evaluate(),
/** @type {ol.expr.Literal} */ (args[3]).evaluate()
]];
} }
} }
if (type && extent) { if (type && extent) {
+1 -1
View File
@@ -52,7 +52,7 @@ describe('ol.layer.Vector', function() {
}); });
var geomFilter = ol.expr.parse('geometryType("linestring")'); var geomFilter = ol.expr.parse('geometryType("linestring")');
var extentFilter = ol.expr.parse('extent(16, 16.3, 48, 48.3)'); var extentFilter = ol.expr.parse('extent(16, 48, 16.3, 48.3)');
it('can filter by geometry type using its GeometryType index', function() { it('can filter by geometry type using its GeometryType index', function() {
sinon.spy(geomFilter, 'evaluate'); sinon.spy(geomFilter, 'evaluate');