Additional index dimension for RTree; use RTree again

The RTree can easily maintain an additional index dimension,
by passing a type with each added item. Now instead of
maintaining an RTree for each geometry type, we have a single
RTree with a type filter. With this change, using the RTree
finally speeds up rendering as expected.
This commit is contained in:
ahocevar
2013-03-07 14:36:09 +01:00
parent f961930823
commit f0039ee460
3 changed files with 34 additions and 27 deletions

View File

@@ -327,7 +327,8 @@ ol.renderer.canvas.VectorLayer.prototype.renderFrame =
for (i = 0; i < numFilters; ++i) {
geomFilter = filters[i];
type = geomFilter.getType();
features = layer.getFeatures(geomFilter);
features = layer.getFeatures(new ol.filter.Logical(
[geomFilter, extentFilter], ol.filter.LogicalOperator.AND));
if (features.length) {
groups = layer.groupFeaturesBySymbolizerLiteral(features);
numGroups = groups.length;