diff --git a/plugins/max-links.user.js b/plugins/max-links.user.js index b1cd801f..9815f350 100644 --- a/plugins/max-links.user.js +++ b/plugins/max-links.user.js @@ -20,7 +20,7 @@ function wrapper() { // use own namespace for plugin window.plugin.maxLinks = function() {}; - + window.plugin.maxLinks.MAX_DRAWN_LINKS = 400; var MAX_LINK_COLOR = '#FF0000'; var Triangle = function (a, b, c) { @@ -203,7 +203,8 @@ function wrapper() { window.plugin.maxLinks.layer = null; - var updating = false; + var updating = false; + var renderLimitReached = false; window.plugin.maxLinks.updateLayer = function() { if (updating || window.plugin.maxLinks.layer === null || !window.map.hasLayer(window.plugin.maxLinks.layer)) return; @@ -230,14 +231,26 @@ function wrapper() { }); var triangles = window.plugin.maxLinks.triangulate(locations); + var drawnLinks = 0; + renderLimitReached = false; $.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; + window.renderUpdateStatus(); } var setup = function() { 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) { if (e.layer === window.plugin.maxLinks.layer) window.plugin.maxLinks.updateLayer();