1 | import { getLanguageString } from './i18n.js'
|
2 |
|
3 | /**
|
4 | * Converts a unit object to a human-readable symbol or label, where symbols are preferred.
|
5 | *
|
6 | * @example
|
7 | * var unit = {
|
8 | * symbol: '°C'
|
9 | * }
|
10 | * var str = CovUtils.stringifyUnit(unit) // str == '°C'
|
11 | *
|
12 | * @example
|
13 | * var unit = {
|
14 | * symbol: {
|
15 | * value: 'Cel',
|
16 | * type: 'http://www.opengis.net/def/uom/UCUM/'
|
17 | * },
|
18 | * label: {
|
19 | * en: 'Degree Celsius'
|
20 | * }
|
21 | * }
|
22 | * var str = CovUtils.stringifyUnit(unit) // str == '°C'
|
23 | *
|
24 | * @example
|
25 | * var unit = {
|
26 | * label: {
|
27 | * en: 'Degree Celsius',
|
28 | * de: 'Grad Celsius'
|
29 | * }
|
30 | * }
|
31 | * var str = CovUtils.stringifyUnit(unit, 'en') // str == 'Degree Celsius'
|
32 | */
|
33 | export function stringifyUnit (unit, language) {
|
34 | if (!unit) {
|
35 | return ''
|
36 | }
|
37 | if (unit.symbol) {
|
38 | let symbol = unit.symbol.value || unit.symbol
|
39 | let scheme = unit.symbol.type
|
40 | if (scheme === 'http://www.opengis.net/def/uom/UCUM/') {
|
41 | if (symbol === 'Cel') {
|
42 | symbol = '°C'
|
43 | } else if (symbol === '1') {
|
44 | symbol = ''
|
45 | }
|
46 | }
|
47 | return symbol
|
48 | } else {
|
49 | return getLanguageString(unit.label, language)
|
50 | }
|
51 | }
|