From 231e2c71a18750cd1447051242906ac5ed9e026d Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Mon, 9 Dec 2019 11:13:42 -0500 Subject: [PATCH] Add unsearchable preset for `demolished:building=yes` (close #7098) Render features with a status prefix in the provisional styles (e.g. dashed outline) --- data/presets.yaml | 3 +++ data/presets/presets.json | 1 + data/presets/presets/demolished/building.json | 14 ++++++++++++++ data/taginfo.json | 1 + dist/locales/en.json | 3 +++ modules/svg/tag_classes.js | 15 ++++++++++++++- 6 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 data/presets/presets/demolished/building.json diff --git a/data/presets.yaml b/data/presets.yaml index b68ed8d36..51a0c4c62 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -4562,6 +4562,9 @@ en: name: Advanced Stop Line # 'terms: advanced stop box,asl,bicycle box,bike box,bikebox,cycle box,cycle stop marking' terms: '' + demolished/building: + # 'demolished:building=*' + name: Recently Demolished Building embankment: # embankment=yes name: Embankment diff --git a/data/presets/presets.json b/data/presets/presets.json index 554001f6d..23facdaf4 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -434,6 +434,7 @@ "craft/window_construction": {"icon": "temaki-window", "geometry": ["point", "area"], "terms": ["glass"], "tags": {"craft": "window_construction"}, "name": "Window Construction"}, "craft/winery": {"icon": "maki-alcohol-shop", "moreFields": ["{craft}", "min_age"], "geometry": ["point", "area"], "tags": {"craft": "winery"}, "name": "Winery"}, "cycleway/asl": {"icon": "maki-bicycle", "fields": ["ref", "direction_vertex", "width"], "geometry": ["vertex"], "tags": {"cycleway": "asl"}, "terms": ["advanced stop box", "asl", "bicycle box", "bike box", "bikebox", "cycle box", "cycle stop marking"], "name": "Advanced Stop Line"}, + "demolished/building": {"fields": ["name", "address"], "geometry": ["area"], "tags": {"demolished:building": "*"}, "name": "Recently Demolished Building", "searchable": false}, "emergency/designated": {"fields": ["emergency_combo"], "geometry": ["line"], "tags": {"emergency": "designated"}, "name": "Emergency Access Designated", "searchable": false, "matchScore": 0.01}, "emergency/destination": {"fields": ["emergency_combo"], "geometry": ["line"], "tags": {"emergency": "destination"}, "name": "Emergency Access Destination", "searchable": false, "matchScore": 0.01}, "emergency/no": {"fields": ["emergency_combo"], "geometry": ["line"], "tags": {"emergency": "no"}, "name": "Emergency Access No", "searchable": false, "matchScore": 0.01}, diff --git a/data/presets/presets/demolished/building.json b/data/presets/presets/demolished/building.json new file mode 100644 index 000000000..17a4a084c --- /dev/null +++ b/data/presets/presets/demolished/building.json @@ -0,0 +1,14 @@ +{ + "fields": [ + "name", + "address" + ], + "geometry": [ + "area" + ], + "tags": { + "demolished:building": "*" + }, + "name": "Recently Demolished Building", + "searchable": false +} diff --git a/data/taginfo.json b/data/taginfo.json index b4e6dbd09..9ca44f7f0 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -429,6 +429,7 @@ {"key": "craft", "value": "window_construction", "description": "🄿 Window Construction", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/ideditor/temaki/icons/window.svg"}, {"key": "craft", "value": "winery", "description": "🄿 Winery", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/alcohol-shop-15.svg"}, {"key": "cycleway", "value": "asl", "description": "🄿 Advanced Stop Line", "object_types": ["node"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/bicycle-15.svg"}, + {"key": "demolished:building", "description": "🄿 Recently Demolished Building (unsearchable)", "object_types": ["area"]}, {"key": "emergency", "value": "designated", "description": "🄿 Emergency Access Designated (unsearchable)", "object_types": ["way"]}, {"key": "emergency", "value": "destination", "description": "🄿 Emergency Access Destination (unsearchable)", "object_types": ["way"]}, {"key": "emergency", "value": "no", "description": "🄿 Emergency Access No (unsearchable)", "object_types": ["way"]}, diff --git a/dist/locales/en.json b/dist/locales/en.json index bc858a569..ede61deb4 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -6453,6 +6453,9 @@ "name": "Advanced Stop Line", "terms": "advanced stop box,asl,bicycle box,bike box,bikebox,cycle box,cycle stop marking" }, + "demolished/building": { + "name": "Recently Demolished Building" + }, "emergency/designated": { "name": "Emergency Access Designated" }, diff --git a/modules/svg/tag_classes.js b/modules/svg/tag_classes.js index 6f6d2f34c..9db493da4 100644 --- a/modules/svg/tag_classes.js +++ b/modules/svg/tag_classes.js @@ -43,7 +43,7 @@ export function svgTagClasses() { tagClasses.getClassesString = function(t, value, entity) { var primary, status; - var i, k, v; + var i, j, k, v; // in some situations we want to render perimeter strokes a certain way var overrideGeometry; @@ -88,6 +88,19 @@ export function svgTagClasses() { break; } + if (!primary) { + for (i = 0; i < statuses.length; i++) { + for (j = 0; j < primaries.length; j++) { + k = statuses[i] + ':' + primaries[j]; // e.g. `demolished:building=yes` + v = t[k]; + if (!v || v === 'no') continue; + + status = statuses[i]; + break; + } + } + } + // add at most one status tag, only if relates to primary tag.. if (!status) { for (i = 0; i < statuses.length; i++) {