Browse Source

GeoInfo: show current speed (if available)

master
Stephan Bösch-Plepelits 4 years ago
parent
commit
efa8db6da4
  1. 1
      src/GeoInfo.js
  2. 32
      src/formatUnits.js

1
src/GeoInfo.js

@ -104,6 +104,7 @@ register_hook('init', function () {
domLocation.innerHTML = '<span class="value">' + formatUnits.coord(e.latlng.wrap(), { precision: 5 }) +
(typeof e.accuracy !== 'undefined' ? (global.options.formatUnitsCoordSpacer || ', ') + '± ' + formatUnits.distance(e.accuracy.toFixed(0)) : '') + '<br/>' +
(typeof e.altitude !== 'undefined' ? '<i class="fas fa-mountain"></i> ' + formatUnits.height(e.altitude) + (typeof e.altitudeAccuracy !== 'undefined' ? ' ± ' + formatUnits.distance(e.altitudeAccuracy) : '') + ' ' : '') +
(typeof e.speed !== 'undefined' ? '<i class="fas fa-tachometer-alt"></i> ' + formatUnits.speed(e.speed) + ' ' : '') +
'</span>'
domLocation.classList.remove('empty')
}

32
src/formatUnits.js

@ -5,7 +5,8 @@ const formatcoords = require('formatcoords')
const settings = {
coordFormat: 'FFf',
coordSpacer: ', ',
system: 'si'
system: 'si',
speed: 'km/h'
}
const distanceUnits = {
@ -77,6 +78,20 @@ module.exports = {
const measure = measureFrom.apply(this, areaUnits[settings.system])
return measure(value).toString()
},
speed: value => {
switch (settings.speed) {
case 'm/s':
return value.toFixed(0) + ' ' + lang('formatUnits:speed:m/s')
case 'km/h':
return (value * 3.6).toFixed(0) + ' ' + lang('formatUnits:speed:km/h')
case 'mi/h':
return (value * 2.236936).toFixed(0) + ' ' + lang('formatUnits:speed:mi/h')
case 'kn':
return (value * 1.943844).toFixed(0) + ' ' + lang('formatUnits:speed:kn')
case 'ft/s':
return (value * 3.280840).toFixed(0) + ' ' + lang('formatUnits:speed:ft/s')
}
},
coord: (value, options = {}) => {
let format = settings.coordFormat
options.precision = 'precision' in options ? options.precision : 5
@ -139,6 +154,19 @@ register_hook('options_form', def => {
},
'default': settings.coordSpacer
}
def.formatUnitsSpeed = {
'name': lang('formatUnits:speed'),
'type': 'select',
'values': {
'km/h': lang('formatUnits:speed:km/h'),
'mi/h': lang('formatUnits:speed:mi/h'),
'm/s': lang('formatUnits:speed:m/s'),
'kn': lang('formatUnits:speed:kn'),
'ft/s': lang('formatUnits:speed:ft/s')
},
'default': settings.speed
}
})
register_hook('options_save', data => {
@ -147,6 +175,7 @@ register_hook('options_save', data => {
settings.coordFormat = data.formatUnitsCoordFormat
settings.coordSpacer = data.formatUnitsCoordSpacer
settings.system = data.formatUnitsSystem
settings.speed = data.formatUnitsSpeed
if (old !== JSON.stringify(settings)) {
call_hooks('format-units-refresh')
@ -159,6 +188,7 @@ register_hook('init', () => {
settings.coordFormat = global.options.formatUnitsCoordFormat || settings.coordFormat
settings.coordSpacer = global.options.formatUnitsCoordSpacer || settings.coordSpacer
settings.system = global.options.formatUnitsSystem || settings.system
settings.speed = global.options.formatUnitsSpeed || settings.speed
if (old !== JSON.stringify(settings)) {
call_hooks('format-units-refresh')

Loading…
Cancel
Save