diff --git a/public_html/config.js b/public_html/config.js
index cc27942..ceddc70 100644
--- a/public_html/config.js
+++ b/public_html/config.js
@@ -7,13 +7,13 @@
// -- Output Settings -------------------------------------
// Show metric values
-// This controls the units used in the plane table,
-// You can choose to enable Metric or Imperial or both.
-// If you enable both, by setting PreferMetric to either true or false,
-// you control which unit is displayed first.
-PreferMetric = true;
-EnableMetric = true;
-EnableImperial = false;
+// The Metric setting controls whether metric (m, km, km/h) or
+// imperial (ft, NM, knots) units are used in the plane table
+// and in the detailed plane info. If ShowOtherUnits is true,
+// then the other unit will also be shown in the detailed plane
+// info.
+Metric = false;
+ShowOtherUnits = true;
// -- Map settings ----------------------------------------
// These settings are overridden by any position information
diff --git a/public_html/formatter.js b/public_html/formatter.js
index 73fb501..19c54e1 100644
--- a/public_html/formatter.js
+++ b/public_html/formatter.js
@@ -1,4 +1,8 @@
+// -*- mode: javascript; indent-tabs-mode: t; c-basic-offset: 8 -*-
+"use strict";
+
var TrackDirections = ["North","Northeast","East","Southeast","South","Southwest","West","Northwest"];
+
// formatting helpers
// track in degrees (0..359)
@@ -25,19 +29,13 @@ function format_track_long(track) {
function format_altitude_brief(alt, vr) {
var alt_text;
- // 4 cases possible:
- // 1: EnableMetric = true | EnableImperial = false | PreferMetric = (Dont Care) -> display metric
- // 2: EnableMetric = false | EnableImperial = true | PreferMetric = (Dont Care) -> display imperial
- // 3: EnableMetric = true | EnableImperial = true | PreferMetric = true -> display metric
- // 4: EnableMetric = true | EnableImperial = true | PreferMetric = false -> display imperial
-
if (alt === null){
return "";
} else if (alt === "ground"){
return "ground";
}
- if ((EnableMetric && !EnableImperial) || (PreferMetric && EnableMetric && EnableImperial)){
+ if (Metric) {
alt_text = Math.round(alt / 3.2828) + NBSP; // Altitude to meters
} else {
alt_text = Math.round(alt) + NBSP;
@@ -54,6 +52,13 @@ function format_altitude_brief(alt, vr) {
}
// alt in ft
+function _alt_to_unit(alt, m) {
+ if (m)
+ return Math.round(alt / 3.2828) + NBSP + "m";
+ else
+ return Math.round(alt) + NBSP + "ft";
+}
+
function format_altitude_long(alt, vr) {
var alt_text = "";
@@ -62,22 +67,13 @@ function format_altitude_long(alt, vr) {
} else if (alt === "ground") {
return "on ground";
}
-
- // If we only want to see one of the two types
- if((EnableMetric && !EnableImperial) || (!EnableMetric && EnableImperial)){
- if(EnableMetric){
- alt_text = Math.round(alt / 3.2828) + " m";
- }
- else{
- alt_text = Math.round(alt) + " ft";
- }
- }
- else{ // we want to see both, check PreferMetric for what order
- if (PreferMetric) {
- alt_text = Math.round(alt / 3.2828) + " m | " + Math.round(alt) + " ft";
- } else {
- alt_text = Math.round(alt) + " ft | " + Math.round(alt / 3.2828) + " m";
- }
+
+ // Primary unit
+ alt_text = _alt_to_unit(alt, Metric);
+
+ // Secondary unit
+ if (ShowOtherUnits) {
+ alt_text = alt_text + ' | ' + _alt_to_unit(alt, !Metric);
}
if (vr > 128) {
@@ -95,7 +91,7 @@ function format_speed_brief(speed) {
return "";
}
- if ((EnableMetric && !EnableImperial) || (PreferMetric && EnableMetric && EnableImperial)){
+ if (Metric) {
return Math.round(speed * 1.852); // knots to kilometers per hour
} else {
return Math.round(speed); // knots
@@ -103,28 +99,28 @@ function format_speed_brief(speed) {
}
// speed in kts
-function format_speed_long(speed) {
+
+function _speed_to_unit(speed, m) {
+ if (m)
+ return Math.round(speed * 1.852) + NBSP + "km/h";
+ else
+ return Math.round(speed) + NBSP + "kt";
+}
+
+function format_speed_long(speed) {
if (speed === null) {
return "n/a";
}
-
- // If we only want to see one of the two types
- if((EnableMetric && !EnableImperial) || (!EnableMetric && EnableImperial)){
- if(EnableMetric){
- return Math.round(speed * 1.852) + " km/h";
- }
- else{
- return Math.round(speed) + " kt";
- }
- }
- else{ // we want to see both, check PreferMetric for what order
- if (PreferMetric) {
- return Math.round(speed * 1.852) + " km/h | " + Math.round(speed) + " kt";
- } else {
- return Math.round(speed) + " kt | " + Math.round(speed * 1.852) + " km/h";
- }
+
+ // Primary unit
+ var speed_text = _speed_to_unit(speed, Metric);
+
+ // Secondary unit
+ if (ShowOtherUnits) {
+ speed_text = speed_text + ' | ' + _speed_to_unit(speed, !Metric);
}
+ return speed_text;
}
// dist in meters
@@ -133,7 +129,7 @@ function format_distance_brief(dist) {
return "";
}
- if ((EnableMetric && !EnableImperial) || (PreferMetric && EnableMetric && EnableImperial)){
+ if (Metric) {
return (dist/1000).toFixed(1); // meters to kilometers
} else {
return (dist/1852).toFixed(1); // meters to nautocal miles
@@ -141,30 +137,31 @@ function format_distance_brief(dist) {
}
// dist in metres
-function format_distance_long(dist) {
+
+function _dist_to_unit(dist, m) {
+ if (m)
+ return (dist/1000).toFixed(1) + NBSP + "km";
+ else
+ return (dist/1852).toFixed(1) + NBSP + "NM";
+}
+
+function format_distance_long(dist) {
if (dist === null) {
return "n/a";
}
-
- // If we only want to see one of the two types
- if((EnableMetric && !EnableImperial) || (!EnableMetric && EnableImperial)){
- if(EnableMetric){
- return (dist/1000).toFixed(1) + " km";
- }
- else{
- return (dist/1852).toFixed(1) + " NM";
- }
- }
- else{ // we want to see both, check PreferMetric for what order
- if (PreferMetric) {
- return (dist/1000).toFixed(1) + " km | " + (dist/1852).toFixed(1) + " NM";
- } else {
- return (dist/1852).toFixed(1) + " NM | " + (dist/1000).toFixed(1) + " km";
- }
+
+ // Primary unit
+ var dist_text = _dist_to_unit(dist, Metric);
+
+ // Secondary unit
+ if (ShowOtherUnits) {
+ dist_text = dist_text + ' | ' + _dist_to_unit(dist, !Metric);
}
+
+ return dist_text;
}
// p as a LatLng
function format_latlng(p) {
return p.lat().toFixed(3) + DEGREES + "," + NBSP + p.lng().toFixed(3) + DEGREES;
-}
\ No newline at end of file
+}
diff --git a/public_html/script.js b/public_html/script.js
index 9d7fba9..8f787de 100644
--- a/public_html/script.js
+++ b/public_html/script.js
@@ -786,7 +786,7 @@ function drawCircle(marker, distance) {
}
distance *= 1000.0;
- if (!EnableMetric) {
+ if (!Metric) {
distance *= 1.852;
}