Modify

Opened 5 years ago

Closed 2 months ago

Last modified 7 weeks ago

#12540 closed defect (fixed)

Ignore shops and amenities when reporting overlapping ways

Reported by: DeeHants Owned by: GerdP
Priority: normal Milestone: 20.12
Component: Core validator Version: tested
Keywords: overlap way shop Cc: simon04

Description

Can shops and amenities be ignored when finding overlapping ways?
These can be used inside a single building where multiple shops exist, and will share walls.
Confusingly, amenities already seem to be ignored, but aren't in the ignore list.

Attachments (1)

Example.osm (1.9 KB) - added by DeeHants 5 years ago.
Example OSM file showing the discrepancy in matching.

Download all attachments as: .zip

Change History (19)

Changed 5 years ago by DeeHants

Attachment: Example.osm added

Example OSM file showing the discrepancy in matching.

comment:1 Changed 3 months ago by skyper

Keywords: overlap way shop added
Type: enhancementdefect

Indeed, shop=* is not allowed to have a common wall (segment).

comment:2 Changed 3 months ago by GerdP

We can add shop and area:highway to the default values for preference key overlapping-ways.ignored-keys.

comment:3 Changed 2 months ago by skyper

overlapping-ways.ignored-keys=[barrier, indoor, building, building:part, historic:building, demolished:building, removed:building, disused:building, abandoned:building, proposed:building, man_made]

I wonder why I do not find amenity or landuse in this list. I thought, this list should be for tags allowed on open ways and only include some specific area tags like the life cycle prefixes. building does not fit here either.

There must be some other magic/trick behind it.

comment:4 Changed 2 months ago by GerdP

Yes, the code also uses method hasAreaTags() which lists more cases:

        return hasKey("landuse", "amenity", "building", "building:part")
                || hasTag("area", OsmUtils.TRUE_VALUE)
                || hasTag("waterway", "riverbank")
                || hasTagDifferent("leisure", "picnic_table", "slipway", "firepit")
                || hasTag("natural", "water", "wood", "scrub", "wetland", "grassland", "heath", "rock", "bare_rock",
                                     "sand", "beach", "scree", "bay", "glacier", "shingle", "fell", "reef", "stone",
                                     "mud", "landslide", "sinkhole", "crevasse", "desert");

This method is also used by UnconnectedWays.

comment:5 Changed 2 months ago by GerdP

Ah, and the number of shared segments also matters, 1 or 2 are ignored. No idea why. Just diggin through history.

comment:6 Changed 2 months ago by GerdP

There is a problem with the overlapping-ways.ignored-keys:
If you have two overlapping highways they are correctly flagged. If you add another way with barrier=hedge to share the same segment nothing is flagged.

comment:7 Changed 2 months ago by GerdP

Milestone: 20.11
Owner: changed from team to GerdP
Status: newassigned

comment:8 Changed 2 months ago by GerdP

The same problem also occurs when you have three or more highways sharing the same segment and one of them is a closed way with area=yes. No message is produced. Current code collects all ways sharing a segment and checks if any of them is ignored or a closed way with a known area tag. That's wrong. It should do this for each pair of ways.

comment:9 Changed 2 months ago by skyper

Cc: simon04 added

As we already have a user configurable list, I would prefer to only use that one and ship proper default values with JOSM. Do not know if this works with tag combinations.

We have separate tests for area=yes. Have to talk a closer look at them in order to decide if it ok to ignore all ways here.

Would it help to split this test in 1. open ways, 2. closed ways (should be covered by "overlapping areas") and 3. open vs. closed? Do MPs interfere with that?

For the number of segments see r6862. Think we need a user-configurable variable for way length instead of number of segments or a new test for the problem:
Quoting simon04 on #9598:

If areas share a long segment, it might be better to introduce multipolygons. This is the idea of this informational message.

comment:10 Changed 2 months ago by GerdP

If areas share a long segment, it might be better to introduce multipolygons. This is the idea of this informational message.

This is one mapping style, using closed overlapping ways is another. Again another is to keep small gaps between different areas and maybe have a highway or waterway between them.
Each method has lots of fans and pros and cons. I've used all of them and still have no strong preference. Today I would probably not use a highway=* in a multipolygon, but maybe a waterway=stream.
Question is if JOSM validator should force users to use a specific mapping style. I think it should not.

comment:11 in reply to:  10 Changed 2 months ago by skyper

I would not connect any area with highway, waterway or railway. Only boundary might be a use-case for me but you are right, there are different mapping styles/methods.
Validator's informal warnings do not force anything. This might be different with "normal" warnings or errors which can still be ignored.

comment:12 Changed 2 months ago by GerdP

Yes, I also wondered why boundary is not yet in the ignored list.

comment:13 Changed 2 months ago by GerdP

I would not connect any area with highway, waterway or railway.

In some areas almost every landuse area is glued to one of the above. So, in my eyes, we should completely ignore ways with landuse=* in this test.

comment:14 in reply to:  13 Changed 2 months ago by skyper

Replying to GerdP:

I would not connect any area with highway, waterway or railway.

In some areas almost every landuse area is glued to one of the above. So, in my eyes, we should completely ignore ways with landuse=* in this test.

Yeah, as it is really easy to glue together and people tend to not like empty holes plus landuse=road/highway is not in common use. This makes working, especially with small linear ways on top complicated. In my area, one user even split the highways to make MPs for landuse. The way back to unconnected landuse as area is not much fun to change and time consuming.

comment:15 Changed 2 months ago by GerdP

see #19465 for planned changes

comment:16 Changed 2 months ago by Don-vip

Milestone: 20.1120.12

Milestone renamed

comment:17 Changed 2 months ago by GerdP

Resolution: fixed
Status: assignedclosed

Fixed with r17350

comment:18 in reply to:  5 Changed 7 weeks ago by DeeHants

Replying to GerdP:

Ah, and the number of shared segments also matters, 1 or 2 are ignored. No idea why. Just diggin through history.

This probably explains why it seemed intermittent when I was mapping UK high streets
These, by their nature share walls and and have complicated shapes.

I will give this a test when next working on areas like this.

Thanks!

Last edited 7 weeks ago by DeeHants (previous) (diff)

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain GerdP.
as The resolution will be set.
The resolution will be deleted.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.