write a test for automatic clustering and fix render issue

This commit is contained in:
Dominik Moritz
2012-09-12 14:02:54 +01:00
parent 89890c8acb
commit 3ecd0b875b
2 changed files with 29 additions and 5 deletions

View File

@@ -92,6 +92,9 @@ my.Map = Backbone.View.extend({
self.state.set(self.menu.state.toJSON()); self.state.set(self.menu.state.toJSON());
self.redraw(); self.redraw();
}); });
this.state.bind('change', function() {
self.redraw();
});
this.elSidebar = this.menu.el; this.elSidebar = this.menu.el;
}, },
@@ -179,7 +182,7 @@ my.Map = Backbone.View.extend({
var countAfter = 0; var countAfter = 0;
this.features.eachLayer(function(){countAfter++;}); this.features.eachLayer(function(){countAfter++;});
var sizeIncreased = countAfter - countBefore > 0; var sizeIncreased = countAfter - countBefore > 0;
if (!this.state.get('cluster') && countAfter > 100 && sizeIncreased) { if (!this.state.get('cluster') && countAfter > 99 && sizeIncreased) {
this.state.set({cluster: true}); this.state.set({cluster: true});
return; return;
} }

View File

@@ -130,13 +130,34 @@ test('_getGeometryFromRecord non-GeoJSON', function () {
}); });
}); });
test('many markers', function () {
var data = [];
for (var i = 0; i<1000; i++) {
data.push({ id: i, lon: 13+3*i, lat: 52+i/10});
}
var fields = [
{id: 'id'},
{id: 'lat'},
{id: 'lon'}
];
var dataset = new recline.Model.Dataset({records: data, fields: fields});
var view = new recline.View.Map({
model: dataset
});
$('.fixtures').append(view.el);
view.render();
dataset.query();
equal(view.state.get('cluster'), true);
view.remove();
});
test('Popup', function () { test('Popup', function () {
var dataset = GeoJSONFixture.getDataset(); var dataset = GeoJSONFixture.getDataset();
var view = new recline.View.Map({ var view = new recline.View.Map({
model: dataset, model: dataset
state: {
cluster: false
}
}); });
$('.fixtures').append(view.el); $('.fixtures').append(view.el);
view.render(); view.render();