From 9c3c2f835d2396e6971ae00fbf075ec22f1bec22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20B=C3=B6sch-Plepelits?= Date: Wed, 18 Mar 2020 21:58:50 +0100 Subject: [PATCH] GeoInfo: show altitude --- lang/en.json | 6 ++++++ src/GeoInfo.js | 5 ++++- src/formatUnits.js | 15 +++++++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/lang/en.json b/lang/en.json index 4c0d19fa..aa2a7dca 100644 --- a/lang/en.json +++ b/lang/en.json @@ -25,6 +25,12 @@ "formatUnits:system:imp": "Imperial units", "formatUnits:system:nautical": "Nautical", "formatUnits:system:m": "Always meter", + "formatUnits:speed": "Speed unit", + "formatUnits:speed:ft/s": "ft/s", + "formatUnits:speed:km/h": "km/h", + "formatUnits:speed:kn": "kn", + "formatUnits:speed:m/s": "m/s", + "formatUnits:speed:mi/h": "mph", "form_element:please_select": "-- please select --", "geoinfo:nw-corner": "Northwestern corner", "geoinfo:center": "Center", diff --git a/src/GeoInfo.js b/src/GeoInfo.js index 4303eb78..a9890f6c 100644 --- a/src/GeoInfo.js +++ b/src/GeoInfo.js @@ -101,7 +101,10 @@ register_hook('init', function () { } if (e) { - domLocation.innerHTML = '' + formatUnits.coord(e.latlng.wrap(), { precision: 5 }) + '' + domLocation.innerHTML = '' + formatUnits.coord(e.latlng.wrap(), { precision: 5 }) + + (typeof e.accuracy !== 'undefined' ? (global.options.formatUnitsCoordSpacer || ', ') + '± ' + formatUnits.distance(e.accuracy.toFixed(0)) : '') + '
' + + (typeof e.altitude !== 'undefined' ? ' ' + formatUnits.height(e.altitude) + (typeof e.altitudeAccuracy !== 'undefined' ? ' ± ' + formatUnits.distance(e.altitudeAccuracy) : '') + ' ' : '') + + '
' domLocation.classList.remove('empty') } } diff --git a/src/formatUnits.js b/src/formatUnits.js index d5098da1..630cbefa 100644 --- a/src/formatUnits.js +++ b/src/formatUnits.js @@ -58,6 +58,21 @@ module.exports = { const measure = measureFrom.apply(this, distanceUnits[settings.system]) return measure(value).toString() }, + height: value => { + switch (settings.system) { + case 'imp': + return (value / 0.3048) .toFixed(0) + ' ft' + case 'nautical': + // not defined for nautical, use 'm' instead + case 'si': + case 'm': + default: + return value.toFixed(0) + ' m' + } + + const measure = measureFrom.apply(this, distanceUnits[settings.system]) + return measure(value).toString() + }, area: value => { const measure = measureFrom.apply(this, areaUnits[settings.system]) return measure(value).toString()