diff --git a/src/SldStyleParser.ts b/src/SldStyleParser.ts index e6f55a01..45e0c8a8 100644 --- a/src/SldStyleParser.ts +++ b/src/SldStyleParser.ts @@ -558,7 +558,7 @@ export class SldStyleParser implements StyleParser { scaleDenominator.max = Number(max); } - return (scaleDenominator.min || scaleDenominator.max) + return (Number.isFinite(scaleDenominator.min) || Number.isFinite(scaleDenominator.max)) ? scaleDenominator : undefined; } @@ -901,7 +901,8 @@ export class SldStyleParser implements StyleParser { case '#text': return labelEl['#text']; case 'Literal': - return labelEl?.[labelName]?.[0 ]?.['#text'] || labelEl?.[labelName]?.[0]?.['#cdata']?.[0]?.['#text']; + return labelEl?.[labelName]?.[0 ]?.['#text'] + || labelEl?.[labelName]?.[0]?.['#cdata']?.[0]?.['#text']; case 'PropertyName': const propName = labelEl[labelName][0]['#text']; return `{{${propName}}}`; @@ -1727,7 +1728,10 @@ export class SldStyleParser implements StyleParser { }); } - if (markSymbolizer.strokeColor || markSymbolizer.strokeWidth || markSymbolizer.strokeOpacity) { + if (markSymbolizer.strokeColor || + Number.isFinite(markSymbolizer.strokeWidth) || + Number.isFinite(markSymbolizer.strokeOpacity) + ) { const strokeCssParameters = []; if (markSymbolizer.strokeColor) { if (isGeoStylerFunction(markSymbolizer.strokeColor)) { @@ -2006,7 +2010,10 @@ export class SldStyleParser implements StyleParser { [LinePlacement]: [] }] }); - } else if (textSymbolizer.offset || textSymbolizer.rotate !== undefined || textSymbolizer.placement === 'point') { + } else if (Number.isFinite(textSymbolizer.offset) + || textSymbolizer.rotate !== undefined + || textSymbolizer.placement === 'point' + ) { const pointPlacement: any = []; if (textSymbolizer.offset) { pointPlacement.push({ @@ -2035,7 +2042,7 @@ export class SldStyleParser implements StyleParser { }); } - if (textSymbolizer.haloWidth || textSymbolizer.haloColor) { + if (Number.isFinite(textSymbolizer.haloWidth) || textSymbolizer.haloColor) { const halo: any = []; const haloFillCssParameter = []; if (textSymbolizer.haloWidth) { @@ -2074,7 +2081,7 @@ export class SldStyleParser implements StyleParser { [Halo]: halo }); } - if (textSymbolizer.color || textSymbolizer.opacity) { + if (textSymbolizer.color || Number.isFinite(textSymbolizer.opacity)) { const fill = [{ [CssParameter]: [{ '#text': textSymbolizer.color || '#000000', @@ -2085,7 +2092,7 @@ export class SldStyleParser implements StyleParser { }, { [CssParameter]: [{ - '#text': textSymbolizer.opacity || '1', + '#text': Number.isFinite(textSymbolizer.opacity) ? textSymbolizer.opacity : '1', }], ':@': { '@_name': 'fill-opacity'