Browse Source

formatUnits: configure options

master
parent
commit
3e7b7d5cf8
  1. 4
      lang/en.json
  2. 56
      src/formatUnits.js

4
lang/en.json

@ -20,6 +20,10 @@
"filter:type": "Type",
"formatUnits:coordFormat": "Coordinate format",
"formatUnits:coordSpacer": "Coordinate spacer",
"formatUnits:system": "Unit system",
"formatUnits:system:si": "SI Units",
"formatUnits:system:imp": "Imperial units",
"formatUnits:system:m": "Always meter",
"form_element:please_select": "-- please select --",
"geoinfo:nw-corner": "Northwestern corner",
"geoinfo:center": "Center",

56
src/formatUnits.js

@ -2,15 +2,65 @@ const formatUnit = require('format-unit').default
const formatcoords = require('formatcoords')
const defaults = {
coordFormat: 'FFf',
coordSpacer: ', ',
system: 'si'
}
const distanceUnits = {
si: ['cm', 'm', 'km'],
imp: ['in', 'ft', 'yd', 'mi'],
m: 'm'
}
const areaUnits = {
si: ['cm2', 'm2', 'ha', 'km2'],
imp: ['in2', 'ft2', 'yd2', 'ar', 'mi2'],
m: 'm2'
}
module.exports = {
distance: value => formatUnit('length')(value)(['mm', 'cm', 'm', 'km']),
area: value => formatUnit('area')(value)(['cm2', 'm2', 'ha', 'km2']),
coord: value => formatcoords(value).format()
distance: value => formatUnit('length')(value)(distanceUnits[global.options.formatUnitsSystem || defaults.system]),
area: value => formatUnit('area')(value)(areaUnits[global.options.formatUnitsSystem || defaults.system]),
coord: value => formatcoords(value).format(global.options.formatUnitsCoordFormat || defaults.coordFormat, {
latLonSeparator: global.options.formatUnitsCoordSpacer || defaults.coordSpacer
})
}
register_hook('options_form', def => {
def.formatUnitsSystem = {
'name': lang('formatUnits:coordFormat'),
'type': 'select',
'values': {
'si': lang('formatUnits:system:si'),
'imp': lang('formatUnits:system:imp'),
'm': lang('formatUnits:system:m'),
},
'default': defaults.system
}
def.formatUnitsCoordFormat = {
'name': lang('formatUnits:coordFormat'),
'desc': 'A format definition as specified in <a target="_blank" href="https://github.com/nerik/formatcoords">module formatCoords</a>',
'type': 'select_other',
'values': {
'FFf': 'DD° MM′ SS.SSS″ X',
'Ff': 'DD° MM.MMM′ X',
'f': 'DD.DDD° X',
'd': '±DD.DDD'
},
'default': defaults.coordFormat
}
def.formatUnitsCoordSpacer = {
'name': lang('formatUnits:coordSpacer'),
'type': 'select_other',
'values': {
' ': 'Space',
', ': 'Colon'
},
'default': defaults.coordSpacer
}
})
register_hook('options_save', def => {

Loading…
Cancel
Save