added a renderlimit

This commit is contained in:
Florian Sundermann 2013-02-25 08:56:39 +01:00
parent 647ce5d95d
commit de39c45a34

View File

@ -20,7 +20,7 @@ function wrapper() {
// use own namespace for plugin // use own namespace for plugin
window.plugin.maxLinks = function() {}; window.plugin.maxLinks = function() {};
window.plugin.maxLinks.MAX_DRAWN_LINKS = 400;
var MAX_LINK_COLOR = '#FF0000'; var MAX_LINK_COLOR = '#FF0000';
var Triangle = function (a, b, c) { var Triangle = function (a, b, c) {
@ -204,6 +204,7 @@ function wrapper() {
window.plugin.maxLinks.layer = null; window.plugin.maxLinks.layer = null;
var updating = false; var updating = false;
var renderLimitReached = false;
window.plugin.maxLinks.updateLayer = function() { window.plugin.maxLinks.updateLayer = function() {
if (updating || window.plugin.maxLinks.layer === null || !window.map.hasLayer(window.plugin.maxLinks.layer)) if (updating || window.plugin.maxLinks.layer === null || !window.map.hasLayer(window.plugin.maxLinks.layer))
return; return;
@ -230,14 +231,26 @@ function wrapper() {
}); });
var triangles = window.plugin.maxLinks.triangulate(locations); var triangles = window.plugin.maxLinks.triangulate(locations);
var drawnLinks = 0;
renderLimitReached = false;
$.each(triangles, function(idx, triangle) { $.each(triangles, function(idx, triangle) {
triangle.draw(window.plugin.maxLinks.layer, minX, minY) if (drawnLinks <= window.plugin.maxLinks.MAX_DRAWN_LINKS) {
triangle.draw(window.plugin.maxLinks.layer, minX, minY)
drawnLinks += 3;
} else {
renderLimitReached = true;
}
}); });
updating = false; updating = false;
window.renderUpdateStatus();
} }
var setup = function() { var setup = function() {
window.plugin.maxLinks.layer = L.layerGroup([]); window.plugin.maxLinks.layer = L.layerGroup([]);
window.addHook('checkRenderLimit', function(e) {
if (window.map.hasLayer(window.plugin.maxLinks.layer) && renderLimitReached)
e.reached = true;
});
window.map.on('layeradd', function(e) { window.map.on('layeradd', function(e) {
if (e.layer === window.plugin.maxLinks.layer) if (e.layer === window.plugin.maxLinks.layer)
window.plugin.maxLinks.updateLayer(); window.plugin.maxLinks.updateLayer();