diff --git a/html/planeObject.js b/html/planeObject.js
index 800a1dd..feaad61 100644
--- a/html/planeObject.js
+++ b/html/planeObject.js
@@ -1228,19 +1228,18 @@ PlaneObject.prototype.updateFeatures = function(now, last, redraw) {
this.name = '_' + this.icao.toUpperCase();
}
this.name = this.name.trim();
- this.updated = false;
}
const zoomedOut = 30 * Math.max(0, -1 * (ZoomLvl - 6));
+ const jaeroTime = this.jaero ? 35*60 : 0;
+ const tisbReduction = (this.icao[0] == '~') ? 15 : 0;
// If no packet in over 58 seconds, clear the plane.
// Only clear the plane if it's not selected individually
if ( !this.isFiltered() && (!onlySelected || this.selected) &&
(
- (!globeIndex && this.icao[0] != '~' && this.seen < 58)
- || (globeIndex && this.icao[0] != '~' && this.position != null && this.seen_pos < (30 + zoomedOut))
- || (this.jaero && this.icao[0] != '~' && this.position != null && this.seen_pos < 35*60)
- || (this.icao[0] == '~' && this.position != null && this.seen_pos < 45 / (1 + 2 * globeIndex))
+ (!globeIndex && this.seen < (58 - tisbReduction))
+ || (globeIndex && this.seen_pos < (30 + zoomedOut + jaeroTime - tisbReduction))
|| (this.selected && !SelectedAllPlanes && !multiSelect)
|| noVanish
)
@@ -1255,7 +1254,7 @@ PlaneObject.prototype.updateFeatures = function(now, last, redraw) {
} else if (this.updateTrack(now, last)) {
this.updateLines();
this.updateMarker(true);
- } else {
+ } else if (this.updated) {
this.updateMarker(false); // didn't move
}
} else {
@@ -1269,6 +1268,7 @@ PlaneObject.prototype.updateFeatures = function(now, last, redraw) {
selectPlaneByHex(null,false);
}
}
+ this.updated = false;
};
PlaneObject.prototype.clearMarker = function() {
diff --git a/html/script.js b/html/script.js
index c6a1313..5c33ba1 100644
--- a/html/script.js
+++ b/html/script.js
@@ -63,6 +63,7 @@ var globeIndexGrid = 0;
var globeIndexNow = {};
var globeIndexSpecialTiles;
var globeSimLoad = 4;
+var globeTableLimit = 100;
var lastRealExtent;
var lastGlobeExtent;
var lastRenderExtent;
@@ -1856,7 +1857,7 @@ function refreshTableInfo() {
tableplane.showInTable = true;
}
- if (!sidebarVisible || (nTablePlanes > 100 && mapIsVisible)) {
+ if (!sidebarVisible || (nTablePlanes > globeTableLimit && mapIsVisible)) {
tableplane.showInTable = false;
continue;
}