add to layerchooser instead of the toolbox + code cleanup

This commit is contained in:
boombuler
2013-02-23 17:06:21 +01:00
parent c36afe506e
commit 29749ebbe1

View File

@ -192,71 +192,68 @@ function wrapper() {
Array.prototype.push.apply(closed, open); Array.prototype.push.apply(closed, open);
i = closed.length; i = closed.length;
while(i--) while(i--) {
if(closed[i].a.__sentinel || closed[i].b.__sentinel || closed[i].c.__sentinel) if(closed[i].a.__sentinel || closed[i].b.__sentinel || closed[i].c.__sentinel)
closed.splice(i, 1); closed.splice(i, 1);
/* Yay, we're done! */
return closed;
} }
var layer = null; /* Yay, we're done! */
return closed;
}
window.plugin.portalfolding.toggle = function() { window.plugin.portalfolding.layer = null;
if (layer) {
// toggle off
window.map.removeLayer(layer);
layer = null;
return;
}
var locations = []; var updating = false;
var minX = 0; var fillLayer = function() {
var minY = 0; if (updating)
return;
updating = true;
window.plugin.portalfolding.layer.clearLayers();
for (var key in window.portals) { var locations = [];
var loc = window.portals[key].options.details.locationE6; var minX = 0;
var nloc = { x: loc.lngE6, y: loc.latE6 }; var minY = 0;
if (nloc.x < minX)
minX = nloc.x;
if (nloc.y < minX)
minX = nloc.y;
locations.push(nloc);
}
var i = locations.length; $.each(window.portals, function(guid, portal) {
while(i) { var loc = portal.options.details.locationE6;
var nloc = locations[--i]; var nloc = { x: loc.lngE6, y: loc.latE6 };
nloc.x += Math.abs(minX); if (nloc.x < minX)
nloc.y += Math.abs(minY); minX = nloc.x;
} if (nloc.y < minX)
minX = nloc.y;
locations.push(nloc);
});
layer = L.layerGroup([]) $.each(locations, function(idx, nloc) {
nloc.x += Math.abs(minX);
nloc.y += Math.abs(minY);
});
var triangles = triangulate(locations); var triangles = triangulate(locations);
i = triangles.length; $.each(triangles, function(idx, triangle) {
while(i) { triangle.draw(window.plugin.portalfolding.layer, minX, minY)
var triangle = triangles[--i]; });
triangle.draw(layer, minX, minY) updating = false;
} }
window.map.addLayer(layer); var setup = function() {
return layer; window.plugin.portalfolding.layer = L.layerGroup([]);
} window.map.on('layeradd', function(e) {
if (e.layer === window.plugin.portalfolding.layer)
fillLayer();
});
window.layerChooser.addOverlay(window.plugin.portalfolding.layer, 'Maximum Links');
}
var setup = function() { // PLUGIN END //////////////////////////////////////////////////////////
$('#toolbox').append('<a onclick="window.plugin.portalfolding.toggle()">toggle MaxLinks</a> '); if(window.iitcLoaded && typeof setup === 'function') {
} setup();
} else {
// PLUGIN END ////////////////////////////////////////////////////////// if(window.bootPlugins)
if(window.iitcLoaded && typeof setup === 'function') { window.bootPlugins.push(setup);
setup(); else
} else { window.bootPlugins = [setup];
if(window.bootPlugins) }
window.bootPlugins.push(setup);
else
window.bootPlugins = [setup];
}
} // wrapper end } // wrapper end
// inject code into site context // inject code into site context