diff --git a/package.json b/package.json index f6b80bb0..8ce636ff 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,6 @@ "color-interpolate": "^1.0.5", "event-emitter": "^0.3.5", "file-saver": "^2.0.0", - "format-unit": "^1.0.6", "formatcoords": "^1.1.3", "i18next-client": "^1.11.4", "ip-location": "^1.0.1", @@ -32,6 +31,7 @@ "leaflet.locatecontrol": "^0.61.0", "leaflet.polylinemeasure": "git+https://github.com/ppete2/Leaflet.PolylineMeasure.git", "md5": "^2.2.1", + "measure-ts": "^3.3.2", "modulekit-tabs": "^0.2.2", "moment": "^2.18.1", "natsort": "^1.0.6", diff --git a/src/formatUnits.js b/src/formatUnits.js index d04ab68b..3938370a 100644 --- a/src/formatUnits.js +++ b/src/formatUnits.js @@ -1,4 +1,4 @@ -const formatUnit = require('format-unit').default +const { measureFrom } = require('measure-ts') const formatcoords = require('formatcoords') const defaults = { @@ -11,20 +11,26 @@ let settings = defaults const distanceUnits = { si: ['cm', 'm', 'km'], imp: ['in', 'ft', 'yd', 'mi'], - nautical: 'M', - m: 'm' + nautical: ['M'], + m: ['m'] } const areaUnits = { si: ['cm2', 'm2', 'ha', 'km2'], - imp: ['in2', 'ft2', 'yd2', 'ar', 'mi2'], - nautical: 'M2', - m: 'm2' + imp: ['in2', 'ft2', 'yd2', 'ac', 'mi2'], + nautical: ['M2'], + m: ['m2'] } module.exports = { - distance: value => formatUnit('length')(value)(distanceUnits[global.options.formatUnitsSystem || defaults.system]), - area: value => formatUnit('area')(value)(areaUnits[global.options.formatUnitsSystem || defaults.system]), + distance: value => { + const measure = measureFrom.apply(this, distanceUnits[global.options.formatUnitsSystem || defaults.system]) + return measure(value).toString() + }, + area: value => { + const measure = measureFrom.apply(this, areaUnits[global.options.formatUnitsSystem || defaults.system]) + return measure(value).toString() + }, coord: value => formatcoords(value).format(global.options.formatUnitsCoordFormat || defaults.coordFormat, { latLonSeparator: global.options.formatUnitsCoordSpacer || defaults.coordSpacer }),