disable player tracker when zooming out too far

This commit is contained in:
Stefan Breunig 2013-03-10 12:47:53 +01:00
parent 8237a136e5
commit 0b056df07d

View File

@ -1,7 +1,7 @@
// ==UserScript== // ==UserScript==
// @id iitc-plugin-player-tracker@breunigs // @id iitc-plugin-player-tracker@breunigs
// @name iitc: player tracker // @name iitc: player tracker
// @version 0.7 // @version 0.7.1
// @namespace https://github.com/breunigs/ingress-intel-total-conversion // @namespace https://github.com/breunigs/ingress-intel-total-conversion
// @updateURL https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/player-tracker.user.js // @updateURL https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/player-tracker.user.js
// @downloadURL https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/player-tracker.user.js // @downloadURL https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/player-tracker.user.js
@ -17,24 +17,36 @@ if(typeof window.plugin !== 'function') window.plugin = function() {};
// PLUGIN START //////////////////////////////////////////////////////// // PLUGIN START ////////////////////////////////////////////////////////
window.PLAYER_TRACKER_MAX_TIME = 60*60*1000; // in milliseconds window.PLAYER_TRACKER_MAX_TIME = 60*60*1000; // in milliseconds
window.PLAYER_TRACKER_MIN_ZOOM = 9;
// use own namespace for plugin // use own namespace for plugin
window.plugin.playerTracker = function() {}; window.plugin.playerTracker = function() {};
window.plugin.playerTracker.setup = function() { window.plugin.playerTracker.setup = function() {
if(!window.iconRes) {
alert('Player Tracker requires at least IITC v0.7+. Please update your script or build the latest version yourself.');
return;
}
plugin.playerTracker.drawnTraces = new L.LayerGroup(); plugin.playerTracker.drawnTraces = new L.LayerGroup();
window.layerChooser.addOverlay(plugin.playerTracker.drawnTraces, 'Player Tracker'); window.layerChooser.addOverlay(plugin.playerTracker.drawnTraces, 'Player Tracker');
map.addLayer(plugin.playerTracker.drawnTraces); map.addLayer(plugin.playerTracker.drawnTraces);
addHook('publicChatDataAvailable', window.plugin.playerTracker.handleData); addHook('publicChatDataAvailable', window.plugin.playerTracker.handleData);
window.map.on('zoomend', function() {
window.plugin.playerTracker.zoomListener();
});
window.plugin.playerTracker.zoomListener();
} }
window.plugin.playerTracker.stored = {}; window.plugin.playerTracker.stored = {};
window.plugin.playerTracker.zoomListener = function() {
var ctrl = $('.leaflet-control-layers-selector + span:contains("Player Tracker")').parent();
if(window.map.getZoom() < window.PLAYER_TRACKER_MIN_ZOOM) {
window.plugin.playerTracker.drawnTraces.clearLayers();
ctrl.addClass('disabled').attr('title', 'Zoom in to show those.');
} else {
ctrl.removeClass('disabled').attr('title', '');
}
}
window.plugin.playerTracker.getLimit = function() { window.plugin.playerTracker.getLimit = function() {
return new Date().getTime() - window.PLAYER_TRACKER_MAX_TIME; return new Date().getTime() - window.PLAYER_TRACKER_MAX_TIME;
} }
@ -246,6 +258,8 @@ window.plugin.playerTracker.drawData = function() {
} }
window.plugin.playerTracker.handleData = function(data) { window.plugin.playerTracker.handleData = function(data) {
if(window.map.getZoom() < window.PLAYER_TRACKER_MIN_ZOOM) return;
plugin.playerTracker.discardOldData(); plugin.playerTracker.discardOldData();
plugin.playerTracker.processNewData(data); plugin.playerTracker.processNewData(data);
// remove old popups // remove old popups