From e624106b7d8eec7a90598fa8268dc8f0483f1786 Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Fri, 10 Jan 2020 12:19:53 -0500 Subject: [PATCH] Add Speed Limit Enforcement relation preset (close #7234) Remove Name field from Enforcement preset --- CHANGELOG.md | 2 ++ data/presets.yaml | 5 ++++ data/presets/presets.json | 3 ++- data/presets/presets/type/enforcement.json | 1 - .../presets/type/enforcement/maxspeed.json | 23 +++++++++++++++++++ data/taginfo.json | 1 + dist/locales/en.json | 4 ++++ modules/ui/fields/maxspeed.js | 8 +------ 8 files changed, 38 insertions(+), 9 deletions(-) create mode 100644 data/presets/presets/type/enforcement/maxspeed.json diff --git a/CHANGELOG.md b/CHANGELOG.md index aa1a078ac..0d2ad9f6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -95,6 +95,7 @@ _Breaking changes, which may affect downstream projects or sites that embed iD, * Add Gambling Hall preset ([#7198]) * Add Secondhand Clothing Store preset ([#7164]) * Add Public Prosecutor's Office preset ([#7225]) +* Add Speed Limit Enforcement preset ([#7234]) * Add presets: Emergency Exit, Geyser, Used Car Dealership, Wedding Clothes Store, Backcountry Camping Area, Group Camping Area, History Museum * Rename "Anime Shop" to "Anime / Manga Shop" ([#7223]) * Update Arts & Crafts Store icon ([#7228]) @@ -115,6 +116,7 @@ _Breaking changes, which may affect downstream projects or sites that embed iD, * Show the Website field by default on Restaurants ([#7226]) * Show the Hours field by default on Pharmacy Counters ([#7220]) +[#7234]: https://github.com/openstreetmap/iD/issues/7234 [#7192]: https://github.com/openstreetmap/iD/issues/7192 [#7219]: https://github.com/openstreetmap/iD/issues/7219 [#7208]: https://github.com/openstreetmap/iD/issues/7208 diff --git a/data/presets.yaml b/data/presets.yaml index e44b4efa5..a412bb9e6 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -8462,6 +8462,11 @@ en: # type=enforcement name: Enforcement terms: '' + type/enforcement/maxspeed: + # 'type=enforcement, enforcement=maxspeed' + name: Speed Limit Enforcement + # 'terms: maxspeed,radar,speed camera' + terms: '' type/multipolygon: # type=multipolygon name: Multipolygon diff --git a/data/presets/presets.json b/data/presets/presets.json index b51751295..4d3767f6e 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -1246,7 +1246,8 @@ "type/boundary": {"icon": "iD-boundary", "fields": ["name", "boundary"], "geometry": ["relation"], "tags": {"type": "boundary"}, "name": "Boundary"}, "type/boundary/administrative": {"icon": "iD-boundary", "fields": ["name", "admin_level"], "moreFields": ["gnis/feature_id"], "geometry": ["relation"], "tags": {"type": "boundary", "boundary": "administrative"}, "reference": {"key": "boundary", "value": "administrative"}, "name": "Administrative Boundary"}, "type/connectivity": {"icon": "iD-relation", "fields": ["connectivity"], "geometry": ["relation"], "tags": {"type": "connectivity"}, "name": "Lane Connectivity"}, - "type/enforcement": {"icon": "iD-relation", "fields": ["name", "enforcement"], "geometry": ["relation"], "tags": {"type": "enforcement"}, "name": "Enforcement"}, + "type/enforcement": {"icon": "iD-relation", "fields": ["enforcement"], "geometry": ["relation"], "tags": {"type": "enforcement"}, "name": "Enforcement"}, + "type/enforcement/maxspeed": {"icon": "iD-relation", "fields": ["maxspeed"], "geometry": ["relation"], "tags": {"type": "enforcement", "enforcement": "maxspeed"}, "reference": {"key": "enforcement", "value": "maxspeed"}, "terms": ["maxspeed", "radar", "speed camera"], "name": "Speed Limit Enforcement"}, "type/public_transport/stop_area_group": {"icon": "iD-relation", "fields": ["name", "ref", "network", "operator"], "geometry": ["relation"], "tags": {"type": "public_transport", "public_transport": "stop_area_group"}, "reference": {"key": "public_transport", "value": "stop_area_group"}, "name": "Transit Stop Area Group"}, "type/restriction": {"icon": "iD-restriction", "fields": ["restriction", "except"], "geometry": ["relation"], "tags": {"type": "restriction"}, "name": "Restriction"}, "type/restriction/no_left_turn": {"icon": "iD-restriction-no-left-turn", "geometry": ["relation"], "tags": {"type": "restriction", "restriction": "no_left_turn"}, "name": "No Left Turn"}, diff --git a/data/presets/presets/type/enforcement.json b/data/presets/presets/type/enforcement.json index cf13cb6b1..e9d1e47f3 100644 --- a/data/presets/presets/type/enforcement.json +++ b/data/presets/presets/type/enforcement.json @@ -1,7 +1,6 @@ { "icon": "iD-relation", "fields": [ - "name", "enforcement" ], "geometry": [ diff --git a/data/presets/presets/type/enforcement/maxspeed.json b/data/presets/presets/type/enforcement/maxspeed.json new file mode 100644 index 000000000..fe41fd488 --- /dev/null +++ b/data/presets/presets/type/enforcement/maxspeed.json @@ -0,0 +1,23 @@ +{ + "icon": "iD-relation", + "fields": [ + "maxspeed" + ], + "geometry": [ + "relation" + ], + "tags": { + "type": "enforcement", + "enforcement": "maxspeed" + }, + "reference": { + "key": "enforcement", + "value": "maxspeed" + }, + "terms": [ + "maxspeed", + "radar", + "speed camera" + ], + "name": "Speed Limit Enforcement" +} diff --git a/data/taginfo.json b/data/taginfo.json index 9c97ba559..f03361ee2 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1184,6 +1184,7 @@ {"key": "type", "value": "boundary", "description": "🄿 Boundary", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/iD-sprite/presets/boundary.svg"}, {"key": "type", "value": "connectivity", "description": "🄿 Lane Connectivity", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/iD-sprite/presets/relation.svg"}, {"key": "type", "value": "enforcement", "description": "🄿 Enforcement", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/iD-sprite/presets/relation.svg"}, + {"key": "enforcement", "value": "maxspeed", "description": "🄿 Speed Limit Enforcement", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/iD-sprite/presets/relation.svg"}, {"key": "public_transport", "value": "stop_area_group", "description": "🄿 Transit Stop Area Group", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/iD-sprite/presets/relation.svg"}, {"key": "type", "value": "restriction", "description": "🄿 Restriction", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/iD-sprite/presets/restriction.svg"}, {"key": "restriction", "value": "no_left_turn", "description": "🄿 No Left Turn", "object_types": ["relation"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@master/svg/iD-sprite/presets/restriction-no-left-turn.svg"}, diff --git a/dist/locales/en.json b/dist/locales/en.json index 615c07157..dba8a77d3 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -9777,6 +9777,10 @@ "name": "Enforcement", "terms": "" }, + "type/enforcement/maxspeed": { + "name": "Speed Limit Enforcement", + "terms": "maxspeed,radar,speed camera" + }, "type/public_transport/stop_area_group": { "name": "Transit Stop Area Group", "terms": "" diff --git a/modules/ui/fields/maxspeed.js b/modules/ui/fields/maxspeed.js index c6bcb7dbf..08881438b 100644 --- a/modules/ui/fields/maxspeed.js +++ b/modules/ui/fields/maxspeed.js @@ -48,13 +48,7 @@ export function uiFieldMaxspeed(field, context) { .on('change', change) .on('blur', change); - var loc; - if (_entity.type === 'node') { - loc = _entity.loc; - } else { - var childNodes = context.graph().childNodes(context.entity(_entity.id)); - loc = childNodes[~~(childNodes.length/2)].loc; - } + var loc = _entity.extent(context.graph()).center(); _isImperial = countryCoder.roadSpeedUnit(loc) === 'mph';