diff --git a/application/views/interface_assets/footer.php b/application/views/interface_assets/footer.php
index c6fdeda05..1c0501e3f 100644
--- a/application/views/interface_assets/footer.php
+++ b/application/views/interface_assets/footer.php
@@ -7,6 +7,17 @@
var base_url = ""; // Base URL
var site_url = ""; // Site URL
+ let measurement_base = 'K';
+
+ session->userdata('user_measurement_base') == NULL) {
+ ?>
+ measurement_base = 'config->item('measurement_base'); ?>';
+
+ measurement_base = 'session->userdata('user_measurement_base'); ?>';
+
var icon_dot_url = "assets/images/dot.png";
@@ -134,7 +145,7 @@ if($this->session->userdata('user_id') != null) {
config->item('special_callsign') == true && $this->uri->segment(1) == "dashboard") { ?>
diff --git a/assets/js/leaflet/geocoding.js b/assets/js/leaflet/geocoding.js
index 39bb9de2b..91f28402a 100644
--- a/assets/js/leaflet/geocoding.js
+++ b/assets/js/leaflet/geocoding.js
@@ -69,8 +69,29 @@ function onMapMove(event) {
$('#locator').html(locator);
var distance = bearingDistance(homegrid, locator);
+ let unit;
+
+ switch (measurement_base) {
+ case 'M':
+ distance.distance = distance.distance * 3959;
+ unit = 'mi';
+ break;
+ case 'K':
+ distance.distance = distance.distance * 6371;
+ unit = 'km';
+ break;
+ case 'N':
+ distance.distance = distance.distance * 3440;
+ unit = 'nmi';
+ break;
+ default:
+ distance.distance = distance.distance * 6371;
+ unit = 'km';
+ break;
+ }
+
$('#bearing').html(distance.deg + ' deg');
- $('#distance').html(Math.round(distance.km * 10) / 10 + ' km');
+ $('#distance').html(Math.round(distance.distance * 10) / 10 + ' ' +unit);
};
function onMapClick(event) {
@@ -140,7 +161,7 @@ const bearingDistance = (from, to) => {
}
return {
- km: b * 6371,
+ distance: b,
deg: calcAngle(fromCoords, toCoords)
};
};