diff options
Diffstat (limited to 'misc/openlayers/tests/Strategy/Cluster.html')
-rw-r--r-- | misc/openlayers/tests/Strategy/Cluster.html | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/misc/openlayers/tests/Strategy/Cluster.html b/misc/openlayers/tests/Strategy/Cluster.html deleted file mode 100644 index 3358ff9..0000000 --- a/misc/openlayers/tests/Strategy/Cluster.html +++ /dev/null @@ -1,148 +0,0 @@ -<html> -<head> - <script src="../OLLoader.js"></script> - <script type="text/javascript"> - - function test_activate(t) { - t.plan(2); - - var strategy = new OpenLayers.Strategy.Cluster(); - t.eq(strategy.active, false, "not active after construction"); - - var layer = new OpenLayers.Layer.Vector("Vector Layer", { - strategies: [strategy] - }); - var map = new OpenLayers.Map('map'); - map.addLayer(layer); - - t.eq(strategy.active, true, "active after adding to map"); - } - - function test_clusters(t) { - t.plan(22); - - function featuresEq(got, exp) { - var eq = false; - if(got instanceof Array && exp instanceof Array) { - if(got.length === exp.length) { - for(var i=0; i<got.length; ++i) { - if(got[i] !== exp[i]) { - console.log(got[i], exp[i]); - break; - } - } - eq = (i == got.length); - } - } - return eq; - } - - var strategy = new OpenLayers.Strategy.Cluster(); - var layer = new OpenLayers.Layer.Vector("Vector Layer", { - strategies: [strategy], - isBaseLayer: true - }); - var map = new OpenLayers.Map('map', { - resolutions: [4, 2, 1], - maxExtent: new OpenLayers.Bounds(-40, -40, 40, 40), - zoomMethod: null - }); - map.addLayer(layer); - - // create features in a line, 1 unit apart - var features = new Array(80); - for(var i=0; i<80; ++i) { - features[i] = new OpenLayers.Feature.Vector( - new OpenLayers.Geometry.Point(-40 + i, 0) - ); - } - - // add one additional feature, with no geometry - just to confirm it doesn't break things - features.push(new OpenLayers.Feature.Vector()); - - layer.addFeatures(features); - map.setCenter(new OpenLayers.LonLat(0, 0), 0); - - // resolution 4 - // threshold: 4 * 20 = 80 units - // one cluster - t.eq(layer.features.length, 1, "[4] layer has one cluster"); - t.ok(featuresEq(layer.features[0].cluster, features.slice(0, 80)), "[4] cluster includes all features with geometries"); - - // resolution 2 - // threshold: 2 * 20 = 40 units - // two clusters (41 and 39) - first cluster includes all features within 40 units of the first (0-40 or 41 features) - map.zoomIn(); - t.eq(layer.features.length, 2, "[2] layer has two clusters"); - t.ok(featuresEq(layer.features[0].cluster, features.slice(0, 41)), "[2] first cluster includes first 41 features"); - t.ok(featuresEq(layer.features[1].cluster, features.slice(41, 80)), "[2] second cluster includes last 39 features"); - - // resolution 1 - // threshold: 1 * 20 = 20 units - // four clusters (21, 21, 21, and 17) - map.zoomIn(); - t.eq(layer.features.length, 4, "[1] layer has four clusters"); - t.ok(featuresEq(layer.features[0].cluster, features.slice(0, 21)), "[1] first cluster includes first 21 features"); - t.ok(featuresEq(layer.features[1].cluster, features.slice(21, 42)), "[1] second cluster includes second 21 features"); - t.ok(featuresEq(layer.features[2].cluster, features.slice(42, 63)), "[1] third cluster includes third 21 features"); - t.ok(featuresEq(layer.features[3].cluster, features.slice(63, 80)), "[1] fourth cluster includes last 17 features"); - - // zoom out and back in to test threshold property (21) - map.zoomOut(); - strategy.threshold = 21; - map.zoomIn(); - t.eq(layer.features.length, 20, "[1-threshold 21] layer has 20 clusters"); - t.ok(featuresEq(layer.features[0].cluster, features.slice(0, 21)), "[1-threshold 21] first cluster includes first 21 features"); - t.ok(featuresEq(layer.features[1].cluster, features.slice(21, 42)), "[1-threshold 21] second cluster includes second 21 features"); - t.ok(featuresEq(layer.features[2].cluster, features.slice(42, 63)), "[1-threshold 21] third cluster includes third 21 features"); - t.ok(featuresEq(layer.features.slice(3, 20), features.slice(63, 80)), "[1-threshold 21] last 17 features are not clustered"); - - // zoom out and back in to test high threshold - map.zoomOut(); - strategy.threshold = 100; // clusters must contain 100 features or more - map.zoomIn(); - // the one feature with no geometry is not added to the layer - t.eq(layer.features.length, features.length-1, "[1-threshold 100] layer has " + (features.length-1) + " clusters"); - t.ok(featuresEq(layer.features, features.slice(0, 80)), "[1-threshold 100] layer has all features with geometry"); - - // remove features and zoom - strategy.threshold = 1; - map.setCenter(new OpenLayers.LonLat(0, 0), 0); - t.eq(strategy.features.length, 81, - "[remove features] cluster has cache"); - layer.removeAllFeatures(); - t.eq(layer.features.length, 0, - "[remove features] layer has no features after remove"); - t.ok(!strategy.features, - "[remove features] cluster has no cache after remove"); - map.zoomIn(); - t.eq(layer.features.length, 0, - "[remove features] layer has no features after zoom"); - t.ok(!strategy.features, - "[remove features] cluster has no cache after zoom"); - - map.destroy(); - } - - function test_deactivate(t) { - t.plan(2); - - var strategy = new OpenLayers.Strategy.Cluster(); - var layer = new OpenLayers.Layer.Vector("Vector Layer", { - strategies: [strategy] - }); - var map = new OpenLayers.Map('map'); - map.addLayer(layer); - - t.eq(strategy.active, true, "active after adding to map"); - - map.removeLayer(layer); - t.eq(strategy.active, false, "not active after removing from map"); - } - - </script> -</head> -<body> - <div id="map" style="width: 400px; height: 200px" /> -</body> -</html> |