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()