noVanish: altitude filter applies to tracks
instead of planes
This commit is contained in:
@@ -150,6 +150,8 @@ const estimateStyle = new ol.style.Style({
|
||||
})
|
||||
});
|
||||
|
||||
const nullStyle = new ol.style.Style({});
|
||||
|
||||
const badDot = new ol.style.Style({
|
||||
image: new ol.style.Circle({
|
||||
radius: 3.5,
|
||||
@@ -191,15 +193,8 @@ PlaneObject.prototype.isFiltered = function() {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (this.filter.minAltitude != undefined && this.filter.maxAltitude != undefined) {
|
||||
if (this.altitude == null) {
|
||||
if (!filterTracks && this.altFiltered(this.altitude))
|
||||
return true;
|
||||
}
|
||||
var planeAltitude = this.altitude === "ground" ? 0 : convert_altitude(this.altitude, this.filter.altitudeUnits);
|
||||
if (planeAltitude < this.filter.minAltitude || planeAltitude > this.filter.maxAltitude) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// filter out ground vehicles
|
||||
if (typeof this.filter.groundVehicles !== 'undefined' && this.filter.groundVehicles === 'filtered') {
|
||||
@@ -218,6 +213,20 @@ PlaneObject.prototype.isFiltered = function() {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
PlaneObject.prototype.altFiltered = function(altitude) {
|
||||
if (this.filter.minAltitude == null || this.filter.maxAltitude == null)
|
||||
return false;
|
||||
if (altitude == null) {
|
||||
return true;
|
||||
}
|
||||
const planeAltitude = altitude === "ground" ? 0 : altitude;
|
||||
if (planeAltitude < this.filter.minAltitude || planeAltitude > this.filter.maxAltitude) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
PlaneObject.prototype.updateTail = function() {
|
||||
|
||||
this.tail_update = this.prev_time;
|
||||
@@ -913,7 +922,7 @@ PlaneObject.prototype.updateData = function(now, last, data, init) {
|
||||
|
||||
if (this.flight && this.flight.trim()) {
|
||||
this.name = this.flight;
|
||||
} else if (this.registration && this.registration != "UNKN") {
|
||||
} else if (this.registration) {
|
||||
this.name = '_' + this.registration;
|
||||
} else {
|
||||
this.name = '_' + this.icao.toUpperCase();
|
||||
@@ -1050,15 +1059,15 @@ PlaneObject.prototype.updateLines = function() {
|
||||
if (this.track_linesegs.length == 0)
|
||||
return;
|
||||
|
||||
|
||||
|
||||
// create the new elastic band feature
|
||||
var lastseg = this.track_linesegs[this.track_linesegs.length - 1];
|
||||
var lastfixed = lastseg.fixed.getCoordinateAt(1.0);
|
||||
var geom = new ol.geom.LineString([lastfixed, ol.proj.fromLonLat(this.position)]);
|
||||
this.elastic_feature = new ol.Feature(geom);
|
||||
if (lastseg.estimated) {
|
||||
this.elastic_feature.setStyle(noVanish ? new ol.style.Style({}) : estimateStyle);
|
||||
if (filterTracks && this.altFiltered(lastseg.altitude)) {
|
||||
this.elastic_feature.setStyle(nullStyle);
|
||||
} else if (lastseg.estimated) {
|
||||
this.elastic_feature.setStyle(noVanish ? nullStyle : estimateStyle);
|
||||
} else {
|
||||
this.elastic_feature.setStyle(this.altitudeLines(lastseg.altitude));
|
||||
}
|
||||
@@ -1073,17 +1082,20 @@ PlaneObject.prototype.updateLines = function() {
|
||||
if (seg.feature && (!trackLabels || seg.label))
|
||||
break;
|
||||
|
||||
if (!seg.feature) {
|
||||
if (filterTracks && this.altFiltered(seg.altitude)) {
|
||||
} else if (!seg.feature) {
|
||||
seg.feature = new ol.Feature(seg.fixed);
|
||||
if (seg.estimated) {
|
||||
seg.feature.setStyle(noVanish ? new ol.style.Style({}) : estimateStyle);
|
||||
seg.feature.setStyle(noVanish ? nullStyle : estimateStyle);
|
||||
} else {
|
||||
seg.feature.setStyle(this.altitudeLines(seg.altitude));
|
||||
}
|
||||
seg.feature.hex = this.icao;
|
||||
this.trail_features.push(seg.feature);
|
||||
}
|
||||
if (trackLabels && !seg.label && seg.alt_real != null) {
|
||||
|
||||
if (filterTracks && this.altFiltered(seg.altitude)) {
|
||||
} else if (trackLabels && !seg.label && seg.alt_real != null) {
|
||||
seg.label = new ol.Feature(new ol.geom.Point(seg.fixed.getFirstCoordinate()));
|
||||
const text = seg.alt_real == "ground" ? "" :
|
||||
(Number(seg.speed).toFixed(0).toString().padStart(6, NBSP) + " \n" + seg.alt_real.toString().padStart(6, NBSP)) + " ";
|
||||
|
||||
@@ -54,6 +54,7 @@ var debugJump = false;
|
||||
var noMLAT = false;
|
||||
var noVanish = false;
|
||||
var sidebarVisible = true;
|
||||
var filterTracks = false;
|
||||
|
||||
var SpecialSquawks = {
|
||||
'7500' : { cssClass: 'squawk7500', markerColor: 'rgb(255, 85, 85)', text: 'Aircraft Hijacking' },
|
||||
@@ -393,6 +394,7 @@ function initialize() {
|
||||
|
||||
if (localStorage['noVanish'] == "true") {
|
||||
noVanish = true;
|
||||
filterTracks = noVanish;
|
||||
//localStorage['noVanish'] = "false";
|
||||
}
|
||||
|
||||
@@ -1097,6 +1099,7 @@ function initialize_map() {
|
||||
break;
|
||||
case "V":
|
||||
noVanish = !noVanish;
|
||||
filterTracks = noVanish;
|
||||
localStorage['noVanish'] = noVanish;
|
||||
console.log('noVanish = ' + noVanish);
|
||||
for (var i in PlanesOrdered) {
|
||||
@@ -2510,9 +2513,19 @@ function updatePlaneFilter() {
|
||||
if (maxAltitude < -1e6 || maxAltitude > 1e6 || isNaN(maxAltitude))
|
||||
maxAltitude = 1e6;
|
||||
|
||||
PlaneFilter.minAltitude = minAltitude;
|
||||
PlaneFilter.maxAltitude = maxAltitude;
|
||||
PlaneFilter.altitudeUnits = DisplayUnits;
|
||||
if (DisplayUnits == "metric") {
|
||||
PlaneFilter.minAltitude = minAltitude * 3.2808;
|
||||
PlaneFilter.maxAltitude = maxAltitude * 3.2808;
|
||||
} else {
|
||||
PlaneFilter.minAltitude = minAltitude;
|
||||
PlaneFilter.maxAltitude = maxAltitude;
|
||||
}
|
||||
|
||||
if (filterTracks) {
|
||||
for (var i in PlanesOrdered) {
|
||||
PlanesOrdered[i].remakeTrail();
|
||||
}
|
||||
}
|
||||
|
||||
for (var i in PlanesOrdered) {
|
||||
var plane = PlanesOrdered[i];
|
||||
|
||||
Reference in New Issue
Block a user