gravitystorm / openstreetmap-carto

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

Add rendering for man_made=beacon #3669

Closed Dr-Mx closed 5 years ago

Dr-Mx commented 5 years ago

A common feature along coastal areas, often historic and obvious landmarks. https://wiki.openstreetmap.org/wiki/Tag:man_made=beacon

Example: https://www.openstreetmap.org/node/3942068385

Taginfo: 8 497 objects. https://taginfo.openstreetmap.org/tags/?key=man_made&value=beacon

image

OSMAND uses this icon: image

jeisenbe commented 5 years ago

In taginfo, it appears there are many beacons far from the sea, such as in the central USA, and in the Alps: https://taginfo.openstreetmap.org/tags/man_made=beacon#map

From the wiki: "Many such objects may also be aeronautical airmark=beacon or marine seamark:type=* beacons"

There are over 2200 airmark=beacon https://wiki.openstreetmap.org/wiki/Tag:airmark%3Dbeacon And over 9000 aeroway=navigationaid https://wiki.openstreetmap.org/wiki/Tag:aeroway%3Dnavigationaid

I'm not sure how many have a seamark=* tag, but there appear to be a number of very different types of sea beacons and lights in the "seamark" tagging system: https://wiki.openstreetmap.org/wiki/Seamarks/Beacons https://wiki.openstreetmap.org/wiki/Seamarks/Lights

These two type of beacon have a very different appearance and function. A coastal beacon seems to be similar to a lighthouse, though usually smaller, but an aviation beacon may not be very visible, and some of the seamark beacons may be types of buoys?

It seems we would need to distinguish these types before considering rendering.

jeisenbe commented 5 years ago

@Dr-Mx: I looked into these tags again. The tag man_made=beacon might be used for radio beacons used for aircraft navigation, or sometimes visual aids at airports, in addition to features tagged with seamark:light_major (like lighthouses and similar large lights) and seamark:light_minor (smaller marine navigation visual beacons).

The tag seamark:light_minor is used over 20,000 times and is probably the most common type ofman_made=beacon, but it's rather specific for marine navigation. And seamark:light_major often overlaps with lighthouses, which are already rendered. The air navigation beacons don't seem appropriate for a general-purpose map. And aeroway=navigationaid is also very specialized.

Does anyone else have thoughts about rendering these features?

jragusa commented 5 years ago

Regarding to their overall shape on wiki page, why not a similar rendering than man_made=tower and man_made=mast ? This avoids to create new icons.

jeisenbe commented 5 years ago

Why not a similar rendering to man_made=tower and man_made=mast?

This would be a great idea, but only if all man_made=beacon features are actually located on a tower or mast. Someone would need to do some research with Mapillary and aerial imagery to check what these features are like. If more than 10% or so are not actually on a tower or mast of some sort, then it would be misleading to render them like a tower/mast.

jeisenbe commented 5 years ago

For rendering ideas, here's the symbol used in OS maps (Britain): OS-legend-lighthous-vs-beacon

These are used on Norwegian Topo maps (50k); it looks like modern beacons are rendered with the same 5-point star as lighthouses, but a "wooden beacon" is rendered with a 4-point star, like cairns (piles of stones used as markers) and other "landmarks": norway-50k-tegnforklaring-topo-map-legend-beacons-lights

And here's the French IGN topo map key / legend with "Phare. Feu. Balise. " => "lighthouse. fire/light. beacon/marker." (? - automated translation) french-IGN-topo-map-legend-key-lighthouse-light-beacon

jeisenbe commented 5 years ago

Current tagging combinations (man_made=beacon +)

Not lights or even visual: radar/radio beacons 394 airmark=beacon + man_made=beacon - radio/radar beacons for airplanes

Airport lights: 676 aeroway=navigationaid + man_made=beacon - visual navigation aids for airplanes; lights near runways. 59 aeroway=papi + man_made=beacon - specific type of visual navigation aid for airplanes landing at airports.

2271 total seamark:type=* - see most common values below.

buoys: 23 seamark:type=beacon_* - may or may not have a light

Usually a buoy, but doesn't specify if there is a light, I think? 1240 seamark:type=beacon_isolated_danger - buoy usually, may or may not have a light https://www.offshoreblue.com/navigation/iso-danger.php 350 seamark:type= beacon_special_purpose - buoy or mark or beacon, type unclear 86 seamark:type=beacon_lateral - 23 seamark:type=beacon_cardinal - https://en.wikipedia.org/wiki/Cardinal_mark

Implies it's a functioning light, might be on a buoy but can also be on land: 429 seamark:type=minor_light + man_made=beacon 17 seamark:type=major_light

This subtag specifies the shape of the support structure for a beacon, eg: 988 "seamark:beacon_isolated_danger:shape"="tower" 18 "seamark:beacon_isolated_danger:shape"="pile" 224 "seamark:beacon_isolated_danger:shape"="lattice"

Older tag: 374 seamark=beacon +man_made=beacon

There are a little over 9000 man_made=beacon in total, so the categories above are significant portions of usage, but still a minority.

It looks like man_made=beacon is often a "pole, pile or small mast with a light on the top" as suggested on the wiki page, but it can also be a historic beacon that used to hold a fire but is no longer lit, or it can be a buoy with a light, a buoy without a light (maybe?), a radio/radar "beacon" for airplanes, or a runway light at an airport.

So, it doesn't seem like this tag has a clear enough definition and consistent use to be rendered in one particular way. We could consider rendering the more specific tags instead, like aeroway=navigationaid - though the whole seamark:type thing is quite confusing, and needs better documentation before we could consider rendering those tags.

It's also possible that tagging will improve over time; in particular it's a problem if this tag is being used for radio/radar beacons, and it would help if this could be fixed. Perhaps it should also be reconsidered whether man_made=beacon should be used for airport navigation lights.

It would also be great to have a way to distinguish between lights on buoys, floating in the water, and lights on masts/poles/piles, since we could render these distinctively. This might require proposing new tags, or proposing a clean-up of the whole seamark:type system, which would not be very easy.

jeisenbe commented 5 years ago

@Dr-Mx, I'm afraid that we are going to close this issue for now. Currently the tag man_made=beacon is not used in a consistent way, but instead can represent historical fire beacons which are no longer in use, modern light beacons on land or over the sea, radio/radar beacons, and air navigation lights at airports. See https://github.com/gravitystorm/openstreetmap-carto/issues/3669#issuecomment-525295405 and Talk:Tag:man_made=beacon where @matkoniecz also noted problems which are difficult to solve.

However, as the map examples above show, several of these features would be appropriate for rendering, if the tagging system can be improved. I would suggest discussing a way to distinguish between historic, non-functioning fire beacons, modern marine navigation minor lights, and airport runway light. In particular, functioning lights along the coastline might be useful orientation points and might deserve rendering, if they can be tagged in a consistent way.

The current seamark:type=minor_light could be improved; right now it's quite confusing how this tag should be used. If there was a way to distinguish lighted buoys at sea from towers and masts on land, this could be quite helpful.

Adamant36 commented 5 years ago

@jeisenbe, not to tell you how to do your job, but even if you decline the issue it could still retain the "features" label. Then it would still be findable that way (sometimes I'll look old closed issues using labels and I assume other people do also).

jeisenbe commented 5 years ago

OK.

@kocio-pl how do you use the label "features"? Does it mean "new feature request?" Perhaps we could change the label to be "New Features" for clarity?

Should issues with "features" always get the "milestone: new features"?

kocio-pl commented 5 years ago

I guess it is what it means, but I was just softly extending the system created by @matkoniecz. Sometimes I thought it'd be better to rethink this system to make it more systematic and useful, but didn't like to concentrate on this to not waste the time which could be spent on real deal.

Feel free to improve it the way you think is better. In this case it could be probably good to change all the "feature" tags into "new features" to not fork things.

Milestone is a tool for release planning and I did not found it too useful, because release was quite simple (the ticket for discussing was enough for me) and I didn't like to duplicate tagging work.