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) }; };