diff --git a/js/control/TrackAnalysis.js b/js/control/TrackAnalysis.js index 24dd0c4..f77aeb5 100644 --- a/js/control/TrackAnalysis.js +++ b/js/control/TrackAnalysis.js @@ -500,22 +500,31 @@ BR.TrackAnalysis = L.Class.extend({ return parsed.highway === dataName; case 'surface': - if (dataName === 'internal-unknown' && typeof parsed.surface !== 'string') { - return true; - } - - return typeof parsed.surface === 'string' && parsed.surface === dataName; + return this.singleWayTagMatchesData('surface', parsed, dataName); case 'smoothness': - if (dataName === 'internal-unknown' && typeof parsed.smoothness !== 'string') { - return true; - } - - return typeof parsed.smoothness === 'string' && parsed.smoothness === dataName; + return this.singleWayTagMatchesData('smoothness', parsed, dataName); } return false; }, + singleWayTagMatchesData: function (category, parsedData, lookupValue) { + var foundValue = null; + + for (var iterationKey in parsedData) { + if (iterationKey.indexOf(category) !== -1) { + foundValue = parsedData[iterationKey]; + break; + } + } + + if (lookupValue === 'internal-unknown' && foundValue === null) { + return true; + } + + return foundValue === lookupValue; + }, + /** * Transform a way tags string into an object, for example: *