Merge pull request #8618 from openstreetmap/nsi_fixes

NSI related fixes
This commit is contained in:
Milos Brzakovic
2021-08-02 20:27:46 +02:00
committed by GitHub
+12 -5
View File
@@ -349,6 +349,7 @@ function gatherNames(tags) {
}
function isNamelike(osmkey, which) {
if (osmkey === 'old_name') return false;
return patterns[which].test(osmkey) && !notNames.test(osmkey);
}
}
@@ -488,9 +489,15 @@ function _upgradeTags(tags, loc) {
const properties = category.properties || {};
// Preserve some tags that we specifically don't want NSI to overwrite. ('^name', sometimes)
const preserveTags = item.preserveTags || properties.preserveTags || [];
let regexes = preserveTags.map(s => new RegExp(s, 'i'));
regexes.push(/^building$/i, /^takeaway$/i);
let preserveTags = item.preserveTags || properties.preserveTags || [];
// These tags can be toplevel tags -or- attributes - so we generally want to preserve existing values - #8615
// We'll only _replace_ the tag value if this tag is the toplevel/defining tag for the matched item (`k`)
['building', 'emergency', 'internet_access', 'takeaway'].forEach(osmkey => {
if (k !== osmkey) preserveTags.push(`^${osmkey}$`);
});
const regexes = preserveTags.map(s => new RegExp(s, 'i'));
let keepTags = {};
Object.keys(newTags).forEach(osmkey => {
@@ -499,8 +506,8 @@ function _upgradeTags(tags, loc) {
}
});
// Remove any primary tags ("amenity", "craft", "shop", "man_made", "route", etc)
// with a value like `amenity=yes` or `shop=yes`
// Remove any primary tags ("amenity", "craft", "shop", "man_made", "route", etc) that have a
// value like `amenity=yes` or `shop=yes` (exceptions have already been added to `keepTags` above)
_nsi.kvt.forEach((vmap, k) => {
if (newTags[k] === 'yes') delete newTags[k];
});