#13958 closed defect (invalid)
Warn about nested sports_centres also if both are on areas
Reported by: | Hufkratzer | Owned by: | team |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Core validator | Version: | tested |
Keywords: | leisure sports_centre | Cc: |
Description
What steps will reproduce the problem?
- load outer sports_centre and inner sports_centre.
- Execute the validator.
What is the expected result?
Validator should give a warning about the nesting.
What happens instead?
Validator gives no warning about the nesting.
Please provide any additional information below.
It seems the validator only warns if the inner sports_centre is a node, not if is an area.
Wiki: https://wiki.openstreetmap.org/wiki/Tag:leisure=sports_centre: "Note that you should not place the leisure=sports_centre on inner elements. Use this tag once on the outer area of the sports centre {One feature, one OSM element)"
There seems to be the same behaviour for pitches. Do nested pitches make sense?
URL:http://josm.openstreetmap.de/svn/trunk Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b Last:Changed Date: 2016-11-06 20:18:38 +0100 (Sun, 06 Nov 2016) Build-Date:2016-11-06 21:45:03 Revision:11223 Relative:URL: ^/trunk Identification: JOSM/1.5 (11223 en) Windows XP 32-Bit Memory Usage: 150 MB / 989 MB (46 MB allocated, but free) Java version: 1.8.0_91-b14, Oracle Corporation, Java HotSpot(TM) Client VM Screen: \Display0 800x600 Maximum Screen Size: 800x600 Dataset consistency test: No problems found Plugins: + PicLayer (32796) + apache-commons (32699) + scripting (30760) Tagging presets: + https://josm.openstreetmap.de/josmfile?page=Presets/NewTags&zip=1 Map paint styles: - https://josm.openstreetmap.de/josmfile?page=Styles/MTB&zip=1 - https://josm.openstreetmap.de/josmfile?page=Styles/Surface&zip=1 - https://josm.openstreetmap.de/josmfile?page=Styles/Surface-DataEntry&zip=1 Last errors/warnings: - W: Unable to remove primitives from TestError [tester=MapCSSTagCheckerAndRule [rule=GroupedMapCSSRule [selectors=[node[ParameterFunction~equal(class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>),class java.lang.Object ParameterFunction~parent_tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>))] >LinkSelector{conditions=null} *[leisure]], declaration=Declaration [instructions=[throwWarning: ArrayFunction~tr(class java.lang.String <{0} inside {1}>,class java.lang.String ArrayFunction~concat(class java.lang.Object <leisure=>,class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>)),class java.lang.String ArrayFunction~concat(class java.lang.Object <leisure=>,class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>)));, group: ArrayFunction~tr(class java.lang.String <{0} inside {1}>,class java.lang.String <leisure>,class java.lang.String <leisure>);], idx=16]]], code=3000, message=leisure inside leisure].: java.lang.UnsupportedOperationException - W: Unable to remove primitives from TestError [tester=MapCSSTagCheckerAndRule [rule=GroupedMapCSSRule [selectors=[node[ParameterFunction~equal(class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>),class java.lang.Object ParameterFunction~parent_tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>))] >LinkSelector{conditions=null} *[leisure]], declaration=Declaration [instructions=[throwWarning: ArrayFunction~tr(class java.lang.String <{0} inside {1}>,class java.lang.String ArrayFunction~concat(class java.lang.Object <leisure=>,class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>)),class java.lang.String ArrayFunction~concat(class java.lang.Object <leisure=>,class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>)));, group: ArrayFunction~tr(class java.lang.String <{0} inside {1}>,class java.lang.String <leisure>,class java.lang.String <leisure>);], idx=16]]], code=3000, message=leisure inside leisure].: java.lang.UnsupportedOperationException - W: Unable to remove primitives from TestError [tester=MapCSSTagCheckerAndRule [rule=GroupedMapCSSRule [selectors=[node[ParameterFunction~equal(class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>),class java.lang.Object ParameterFunction~parent_tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>))] >LinkSelector{conditions=null} *[leisure]], declaration=Declaration [instructions=[throwWarning: ArrayFunction~tr(class java.lang.String <{0} inside {1}>,class java.lang.String ArrayFunction~concat(class java.lang.Object <leisure=>,class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>)),class java.lang.String ArrayFunction~concat(class java.lang.Object <leisure=>,class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>)));, group: ArrayFunction~tr(class java.lang.String <{0} inside {1}>,class java.lang.String <leisure>,class java.lang.String <leisure>);], idx=16]]], code=3000, message=leisure inside leisure].: java.lang.UnsupportedOperationException - W: Unable to remove primitives from TestError [tester=MapCSSTagCheckerAndRule [rule=GroupedMapCSSRule [selectors=[node[ParameterFunction~equal(class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>),class java.lang.Object ParameterFunction~parent_tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>))] >LinkSelector{conditions=null} *[leisure]], declaration=Declaration [instructions=[throwWarning: ArrayFunction~tr(class java.lang.String <{0} inside {1}>,class java.lang.String ArrayFunction~concat(class java.lang.Object <leisure=>,class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>)),class java.lang.String ArrayFunction~concat(class java.lang.Object <leisure=>,class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>)));, group: ArrayFunction~tr(class java.lang.String <{0} inside {1}>,class java.lang.String <leisure>,class java.lang.String <leisure>);], idx=16]]], code=3000, message=leisure inside leisure].: java.lang.UnsupportedOperationException - W: Unable to remove primitives from TestError [tester=MapCSSTagCheckerAndRule [rule=GroupedMapCSSRule [selectors=[node[ParameterFunction~equal(class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>),class java.lang.Object ParameterFunction~parent_tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>))] >LinkSelector{conditions=null} *[leisure]], declaration=Declaration [instructions=[throwWarning: ArrayFunction~tr(class java.lang.String <{0} inside {1}>,class java.lang.String ArrayFunction~concat(class java.lang.Object <leisure=>,class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>)),class java.lang.String ArrayFunction~concat(class java.lang.Object <leisure=>,class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>)));, group: ArrayFunction~tr(class java.lang.String <{0} inside {1}>,class java.lang.String <leisure>,class java.lang.String <leisure>);], idx=16]]], code=3000, message=leisure inside leisure].: java.lang.UnsupportedOperationException - W: Unable to remove primitives from TestError [tester=MapCSSTagCheckerAndRule [rule=GroupedMapCSSRule [selectors=[node[ParameterFunction~equal(class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>),class java.lang.Object ParameterFunction~parent_tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>))] >LinkSelector{conditions=null} *[leisure]], declaration=Declaration [instructions=[throwWarning: ArrayFunction~tr(class java.lang.String <{0} inside {1}>,class java.lang.String ArrayFunction~concat(class java.lang.Object <leisure=>,class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>)),class java.lang.String ArrayFunction~concat(class java.lang.Object <leisure=>,class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>)));, group: ArrayFunction~tr(class java.lang.String <{0} inside {1}>,class java.lang.String <leisure>,class java.lang.String <leisure>);], idx=16]]], code=3000, message=leisure inside leisure].: java.lang.UnsupportedOperationException - W: Unable to remove primitives from TestError [tester=MapCSSTagCheckerAndRule [rule=GroupedMapCSSRule [selectors=[node[ParameterFunction~equal(class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>),class java.lang.Object ParameterFunction~parent_tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>))] >LinkSelector{conditions=null} *[leisure]], declaration=Declaration [instructions=[throwWarning: ArrayFunction~tr(class java.lang.String <{0} inside {1}>,class java.lang.String ArrayFunction~concat(class java.lang.Object <leisure=>,class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>)),class java.lang.String ArrayFunction~concat(class java.lang.Object <leisure=>,class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>)));, group: ArrayFunction~tr(class java.lang.String <{0} inside {1}>,class java.lang.String <leisure>,class java.lang.String <leisure>);], idx=16]]], code=3000, message=leisure inside leisure].: java.lang.UnsupportedOperationException - W: Unable to remove primitives from TestError [tester=MapCSSTagCheckerAndRule [rule=GroupedMapCSSRule [selectors=[node[ParameterFunction~equal(class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>),class java.lang.Object ParameterFunction~parent_tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>))] >LinkSelector{conditions=null} *[leisure]], declaration=Declaration [instructions=[throwWarning: ArrayFunction~tr(class java.lang.String <{0} inside {1}>,class java.lang.String ArrayFunction~concat(class java.lang.Object <leisure=>,class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>)),class java.lang.String ArrayFunction~concat(class java.lang.Object <leisure=>,class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>)));, group: ArrayFunction~tr(class java.lang.String <{0} inside {1}>,class java.lang.String <leisure>,class java.lang.String <leisure>);], idx=16]]], code=3000, message=leisure inside leisure].: java.lang.UnsupportedOperationException - W: Unable to remove primitives from TestError [tester=MapCSSTagCheckerAndRule [rule=GroupedMapCSSRule [selectors=[node[ParameterFunction~equal(class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>),class java.lang.Object ParameterFunction~parent_tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>))] >LinkSelector{conditions=null} *[leisure]], declaration=Declaration [instructions=[throwWarning: ArrayFunction~tr(class java.lang.String <{0} inside {1}>,class java.lang.String ArrayFunction~concat(class java.lang.Object <leisure=>,class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>)),class java.lang.String ArrayFunction~concat(class java.lang.Object <leisure=>,class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>)));, group: ArrayFunction~tr(class java.lang.String <{0} inside {1}>,class java.lang.String <leisure>,class java.lang.String <leisure>);], idx=16]]], code=3000, message=leisure inside leisure].: java.lang.UnsupportedOperationException - W: Unable to remove primitives from TestError [tester=MapCSSTagCheckerAndRule [rule=GroupedMapCSSRule [selectors=[node[ParameterFunction~equal(class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>),class java.lang.Object ParameterFunction~parent_tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>))] >LinkSelector{conditions=null} *[leisure]], declaration=Declaration [instructions=[throwWarning: ArrayFunction~tr(class java.lang.String <{0} inside {1}>,class java.lang.String ArrayFunction~concat(class java.lang.Object <leisure=>,class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>)),class java.lang.String ArrayFunction~concat(class java.lang.Object <leisure=>,class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment <leisure>)));, group: ArrayFunction~tr(class java.lang.String <{0} inside {1}>,class java.lang.String <leisure>,class java.lang.String <leisure>);], idx=16]]], code=3000, message=leisure inside leisure].: java.lang.UnsupportedOperationException
Attachments (0)
Change History (4)
comment:1 by , 8 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
follow-up: 3 comment:2 by , 8 years ago
The riding hall in my example is not large enough to contain more than one riding arena, here is a photo of it: https://www.facebook.com/reitschuleseehof/photos/pb.107928882698606.-2207520000.1479801956./147163232108504/. Therefore leisure=pitch should be used here. This would remove the nesting of sports_centres in this example.
- Compare https://wiki.openstreetmap.org/wiki/Riding, section "Riding school / arena / pen"
- Compare https://wiki.openstreetmap.org/wiki/DE:Tag:amenity=school, which explains that sports halls with only one pitch should be tagged with leisure=pitch and only if they contain more than one pitch with leisure=sports_centre.
- Compare https://wiki.openstreetmap.org/wiki/Tag:leisure=pitch#Similar_tags: "leisure=sports_centre - Sports facility covering a larger area, which may include pitches as well as sports halls."
In your example (https://de.wikipedia.org/wiki/Sportforum_Chemnitz) there are really sports halls that contain more than one pitches. Maybe the wiki that I have cited initially is wrong or incomplete, I currently don't know.
follow-up: 4 comment:3 by , 8 years ago
It's the first time I hear about tagging sports halls as pitches. I don't think this is right.
Replying to Hufkratzer:
- Compare https://wiki.openstreetmap.org/wiki/DE:Tag:amenity=school, which explains that sports halls with only one pitch should be tagged with leisure=pitch and only if they contain more than one pitch with leisure=sports_centre.
The english page is always decisive and there is nothing written like that.
- Compare https://wiki.openstreetmap.org/wiki/Riding, section "Riding school / arena / pen"
I'm not so much familiar with the riding tagging in osm. Some of the riding halls are more like a covered pitch (a roof and some half open walls and no base plate, e.g. http://www.pferde-im-sohl.de/tl_files/bilder/reitanlage/1%20Reithalle/Reithalle.jpg. So there is a more fluent transition between outdoor pitches and "real" buildings. Maybe thats the reason for this wiki description at the riding page.
Anyway, even if sports halls mapped as pitches is correct, we can't add a warning for nested sports_centres, as it would produce too much false positives.
comment:4 by , 8 years ago
Replying to Klumbumbus:
It's the first time I hear about tagging sports halls as pitches. I don't think this is right.
It's not tagging sports halls as pitches. building=* + leisure=pitch just says: There is a building and a pitch, and not that the building or the pitch is a sports hall. The building type can only be described by the building tag, see https://wiki.openstreetmap.org/wiki/Proposed_features/Sports_hall. building=* + leisure=pitch is used 5735 times. Mentioned in https://wiki.openstreetmap.org/wiki/DE:Tag:leisure=pitch#Beispiele and https://wiki.openstreetmap.org/wiki/DE:Key:sport#Prim.C3.A4re_Sporteinrichtungen (only in German).
Replying to Hufkratzer:
- Compare https://wiki.openstreetmap.org/wiki/DE:Tag:amenity=school, which explains that sports halls with only one pitch should be tagged with leisure=pitch and only if they contain more than one pitch with leisure=sports_centre.
The english page is always decisive and there is nothing written like that.
I am glad to hear that the english page is always decisive.
Your example is correctly mapped. leisure=sports_centre can be used for both single sport buildings (in german e.g. Turnhallen oder Reithallen) and also for the whole site. http://www.openstreetmap.org/way/197860827 describes the riding building. It would be incomplete mapped without leisure=sports_centre.
Why would it be incomplete? The use is described by the sport=* tag and the building type can be described by the building=* tag. Where is it written (in the English wiki) that a sports or riding hall needs leisure=sports_centre?
Your example is correctly mapped. leisure=sports_centre can be used for both single sport buildings (in german e.g. Turnhallen oder Reithallen) and also for the whole site. http://www.openstreetmap.org/way/197860827 describes the riding building. It would be incomplete mapped without leisure=sports_centre. http://www.openstreetmap.org/way/35470113 describes the whole site including the riding bulding the riding pitches outside, parking spaces, other buildings, ways on the site,.... It would be incomplete mapped without leisure=sports_centre too.
Other example:
whole site Sportforum: https://www.openstreetmap.org/way/10315683
and some specific leisure=sport_centre within: