Modify

Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#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?

  1. load outer sports_centre and inner sports_centre.
  2. 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 Klumbumbus, 8 years ago

Resolution: invalid
Status: newclosed

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:

Last edited 8 years ago by Klumbumbus (previous) (diff)

comment:2 by Hufkratzer, 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.

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.

in reply to:  2 ; comment:3 by Klumbumbus, 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:

The english page is always decisive and there is nothing written like that.

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.

in reply to:  3 comment:4 by Hufkratzer, 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:

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?

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain team.
as The resolution will be set.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.