performance: portal names updates less often, as computing visibility gets expensive with lots of portals visible
This commit is contained in:
parent
170a370099
commit
9efe828ccb
@ -2,7 +2,7 @@
|
|||||||
// @id iitc-plugin-portal-names@zaso
|
// @id iitc-plugin-portal-names@zaso
|
||||||
// @name IITC plugin: Portal Names
|
// @name IITC plugin: Portal Names
|
||||||
// @category Layer
|
// @category Layer
|
||||||
// @version 0.1.3.@@DATETIMEVERSION@@
|
// @version 0.1.4.@@DATETIMEVERSION@@
|
||||||
// @namespace https://github.com/jonatkins/ingress-intel-total-conversion
|
// @namespace https://github.com/jonatkins/ingress-intel-total-conversion
|
||||||
// @updateURL @@UPDATEURL@@
|
// @updateURL @@UPDATEURL@@
|
||||||
// @downloadURL @@DOWNLOADURL@@
|
// @downloadURL @@DOWNLOADURL@@
|
||||||
@ -42,14 +42,6 @@ window.plugin.portalNames.setupCSS = function() {
|
|||||||
).appendTo("head");
|
).appendTo("head");
|
||||||
}
|
}
|
||||||
|
|
||||||
window.plugin.portalNames.portalAdded = function(data) {
|
|
||||||
data.portal.on('add', function() {
|
|
||||||
window.plugin.portalNames.addLabel(this.options.guid, this.getLatLng());
|
|
||||||
});
|
|
||||||
data.portal.on('remove', function() {
|
|
||||||
window.plugin.portalNames.removeLabel(this.options.guid);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
window.plugin.portalNames.removeLabel = function(guid) {
|
window.plugin.portalNames.removeLabel = function(guid) {
|
||||||
var previousLayer = window.plugin.portalNames.labelLayers[guid];
|
var previousLayer = window.plugin.portalNames.labelLayers[guid];
|
||||||
@ -81,6 +73,10 @@ window.plugin.portalNames.addLabel = function(guid, latLng) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
window.plugin.portalNames.updatePortalLabels = function() {
|
window.plugin.portalNames.updatePortalLabels = function() {
|
||||||
|
// as this is called every time layers are toggled, there's no point in doing it when the leyer is off
|
||||||
|
if (!map.hasLayer(window.plugin.portalNames.labelLayerGroup)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var portalPoints = {};
|
var portalPoints = {};
|
||||||
|
|
||||||
@ -152,6 +148,18 @@ window.plugin.portalNames.updatePortalLabels = function() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ass calculating portal marker visibility can take some time when there's lots of portals shown, we'll do it on
|
||||||
|
// a short timer. this way it doesn't get repeated so much
|
||||||
|
window.plugin.portalNames.delayedUpdatePortalLabels = function() {
|
||||||
|
|
||||||
|
if (window.plugin.portalNames.timer === undefined) {
|
||||||
|
window.plugin.portalNames.timer = setTimeout ( function() {
|
||||||
|
window.plugin.portalNames.timer = undefined;
|
||||||
|
window.plugin.portalNames.updatePortalLabels();
|
||||||
|
}, 0.5*1000);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
var setup = function() {
|
var setup = function() {
|
||||||
@ -160,9 +168,9 @@ var setup = function() {
|
|||||||
window.plugin.portalNames.labelLayerGroup = new L.LayerGroup();
|
window.plugin.portalNames.labelLayerGroup = new L.LayerGroup();
|
||||||
window.addLayerGroup('Portal Names', window.plugin.portalNames.labelLayerGroup, true);
|
window.addLayerGroup('Portal Names', window.plugin.portalNames.labelLayerGroup, true);
|
||||||
|
|
||||||
window.addHook('requestFinished', window.plugin.portalNames.updatePortalLabels);
|
window.addHook('requestFinished', window.plugin.portalNames.delayedUpdatePortalLabels);
|
||||||
window.addHook('mapDataRefreshEnd', window.plugin.portalNames.updatePortalLabels);
|
window.addHook('mapDataRefreshEnd', window.plugin.portalNames.delayedUpdatePortalLabels);
|
||||||
window.map.on('overlayadd overlayremove', window.plugin.portalNames.updatePortalLabels);
|
window.map.on('overlayadd overlayremove', window.plugin.portalNames.delayedUpdatePortalLabels);
|
||||||
}
|
}
|
||||||
|
|
||||||
// PLUGIN END //////////////////////////////////////////////////////////
|
// PLUGIN END //////////////////////////////////////////////////////////
|
||||||
|
Loading…
x
Reference in New Issue
Block a user