Vector layer updates for new extent structure
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
@@ -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');
|
||||||
|
|||||||
Reference in New Issue
Block a user