gravitystorm / openstreetmap-carto

A general-purpose OpenStreetMap mapnik style, in CartoCSS
Other
1.53k stars 819 forks source link

Render ref=* for man_made=storage_tank/silo/bunker_silo/reservoir_covered #4139

Open Anakin86 opened 4 years ago

Anakin86 commented 4 years ago

All of these items are technical constructions, which in most cases don't have their own addresses or names, The only way to distinguish them from each other - by their reference number, which is only assigned identifier (and it often printed on them - example 1, example 2).

So, it will be great to render it :) man_made=silo & man_made=storage_tank are often tagged (and rendered) as buildings. man_made=reservoir_covered is not a building, so it's a point to think about it after completing #2620 .

I think. the common schema for labeling these and silimar objects should be next: if there's name tag - render it, else if there is ref tag - render it.

jeisenbe commented 4 years ago

I can see how this would support mappers in adding ref tags, and updating incorrect ref tags. However, is there a benefit to having this information on a general-purpose map, other than mapper feedback? Will it improve the utility of the map?

I also note that adding a ref= tag is not currently mentioned on the wiki pages documenting most of these tags.

E.g.: ref is not mentioned for man_made=reservoir_covered, used only 66 times (https://overpass-turbo.eu/s/TDk) vs 5000 with a name ( https://taginfo.openstreetmap.org/tags/?key=man_made&value=reservoir_covered#combinations)

Not mentioned for https://wiki.openstreetmap.org/wiki/Tag:man_made%3Dstorage_tank and used only a few hundred times, vs >5000 with names.

Now, it's possible that many of the name tags are incorrect tagging for the renderer, but it would be good to clarify the documentation and usage first.

Adamant36 commented 4 years ago

However, is there a benefit to having this information on a general-purpose map, other than mapper feedback?

I could see it being used for a navigation point like pole power ref numbers are used in some countries. Especially for the ones that are in more obscure places.

Now, it's possible that many of the name tags are incorrect tagging for the renderer

From a basic glance it seems that is the case. There's some that are tagged as name=Horse Trough or similar descriptive names because the tagging is technically wrong. There also seems to be a lot of uses of the name tag for tagging what the storage tank contains or it's location. For instance name=Green Water Tank, or Central Plant Water Tank.

IMO, if you look at water tanks like buildings then it would make sense to render ref similar to how other buildings have addresses. At least when they are mapped as areas. They are good orientation points and I see no reason not to. Also, going by the rampant bad name tagging on them it might be worth mentioning on the wiki that people generally shouldn't use the name tag on them, especially how it's currently being used, unless it has an actual name.

Anakin86 commented 4 years ago

E.g.: ref is not mentioned for man_made=reservoir_covered, used only 66 times (https://overpass-turbo.eu/s/TDk) vs 5000 with a name ( https://taginfo.openstreetmap.org/tags/?key=man_made&value=reservoir_covered#combinations)

Not mentioned for https://wiki.openstreetmap.org/wiki/Tag:man_made%3Dstorage_tank and used only a few hundred times, vs >5000 with names.

I rely on base wiki documentation about name= & ref= tags, that points ref as common tag for reference number (for any kind of object) & name as the same for proper names. So it may be not mentioned on every page for every applicable object :)

Also I see some kind of vicious circle here: we put on standard tiles layer only widely used tags, so they start to be visible. But if it is incorrect tag, which is widely used for 'tagging for renderer', we prompt mappers to use it even more widely and not to use correct tag. I don't think I'll be much mistaken if I say that most users dont' set up their own renderers - they put data and expect that they will se it on osm-karto. So if there's possibility for incorrect tagging (name), that is rendered, they mostly likely prefer it, than 'invisible' correct tagging. By visualizng correct tags we will help to improve data quality in OSM.

richlv commented 4 years ago

I believe rendering "ref" for buildings would resolve most of the need here, right? As for usecases, plenty of those.

Two quick examples: https://www.openstreetmap.org/way/132952353 https://www.openstreetmap.org/way/702395749

There are also plenty of hotels/camping sites with buildings having letters, numbers or similar references assigned. In the past, I just double-tagged them with both ref and name. If ref is rejected for rendering, I'll do the same for these business parks ;)

I'd be glad to try a PR, if it doesn't turn out to be too complicated for me.

Anakin86 commented 4 years ago

I believe rendering "ref" for buildings would resolve most of the need here, right?

Not quite. It will help for storage_tank/silo, but reservoir_covered is not a building almost always.

Janjko commented 4 years ago

I would prefer to only render ref on specialized tags, and then add ref to each of those specialized tags wiki pages. Explain something like "a short reference that differentiates one silo from the others, most often a number or a letter." Than if someone tags for the renderer, something like ref=oil reservoir you can point them to the page. My example where I thought ref would need to render is tennis courts inside a sports center.

richlv commented 4 years ago

2 out of 3 is "most" ;) This could get a bit complicated, as buildings in real life can have any combination of addr:housename, addr:housenumber and ref (and for some buildings/entrances also addr:unit and addr:flats).

I've attempted a quick, incomplete implementation for buildings at https://github.com/richlv/openstreetmap-carto/tree/patch-1 - but it does not work (refs not rendered, almost as if not present at all). I'd appreciate hints on what did I do wrong there.

Intentionally not touching reservoir_covered for now to keep it manageable.

Anakin86 commented 4 years ago

as buildings in real life can have any combination of addr:housename, addr:housenumber and ref

Exactly. The first example that come to mind - small transformer substations, located in the residential areas. They may have as ref and addr:housmenumber simultaneously, as only ref (if there's no officially assigned address for this building). So we'll get a mixture on the map - some numbers on the building footprints are housenumbers, some are substation references. And there's absolutely no way to fix it in data.

Objects that I've mentoned in the header of task dont't have housenumbers at all, AFAIK, and usually are not located in the built-up residential or business areas. So there's no confusion here.