OpenSeaMap / online_chart

OpenSeaMap fullscreen browser chart.
http://map.openseamap.org/
64 stars 32 forks source link

Shoals not rendered #174

Closed hohMiyazawa closed 1 year ago

hohMiyazawa commented 1 year ago

One primary reason to use a sea map is to avoid skerries and shoals.

Per current tagging rules, coastline is above high tide, reefs are below low tide, and shoals uncovered at low tide. Thus, the correct way to tag very shallow areas within the tidal zone is as areas tagged natural=shoal

These aren't rendered on the chart! Some are, like when tagged with surface=sand, or mudflats, which use a different tagging scheme. In my area, however, a majority of the exposed shoals are either stone or rock, and thus not rendered.

Examples attached: a) Aerial imagery of how such places look b) How the Norwegian mapping authority maps such areas, both as areas and as point features

example_aerial Norwegian_mapping_authority

wschildbach commented 1 year ago

I took a look how often the tag is used: https://overpass-turbo.eu/s/1xJE . It does appear to be in the OSM database more than a few times.

Implementing this might be a bit tricky since these are neither land nor sea, really. We render land using the openstreetmap renderer, and we render sea using depth information... shoals are kind of in-between and the implementation, to me, does not seem straightforward.

Should we classify these areas as being "land" and try to render them in a special "shoal" scheme? I guess that would mean that no depth information would be rendered (though depth information for shoals would be questionable at best).

hohMiyazawa commented 1 year ago

As long as it is not tagged as "land" in the OSM database, I guess that kind of rendering trick is okay.

Nautic commented 1 year ago

Shoal is explained in the Wiki Rendering example

The coastline problem:

wschildbach commented 1 year ago

So looking at the provided links, shoals ARE actually rendered - but on the seamark layer. That is confusing, admittedly. @hohMiyazawa could you check whether the seamark layer delivers what you would expect? Then we can separately deliberate how to separate seamarks and shoals.

hohMiyazawa commented 1 year ago

I'm not seeing them on the seamark layer.

Example locations: Area: North of Eilean a'Chalmain https://map.openseamap.org/?zoom=16.3&lon=-6.34993&lat=56.27569&layers=TFTFFFTFFTFFFFFFFFFFTT Node: West of Raudholmen https://map.openseamap.org/?zoom=14.6&lon=12.75855&lat=66.54173&layers=TFTFFFTFFTFFFFFFFFFFTT

hohMiyazawa commented 1 year ago

Looking at the render code, it seems it only apply if the shoal is tagged with seamark:sea_area:category=shoal, not natural=shoal. The former is a much less common, and I would argue incorrect, way of tagging shoals.

Indeed, this area using that scheme is rendered: Nåmandsrev https://map.openseamap.org/?zoom=17.6&lon=10.59860&lat=57.49919&layers=TFTFFFTFFTFFFFFFFFFFTT (found with an overpass turbo query)

Nautic commented 1 year ago

If you want a shoal rendered, you need to use the seamark tags given in the wiki. (a few minutes later it will be visible in the chart)

In the first example: On the aerial photo the object looks more like an island? The coastline and the border don't match properly. How big is the tide? What is the water level in the aerial photo? Do you have a depth track from this area? --> https://depth.openseamap.org

hohMiyazawa commented 1 year ago

So: seamark:type=rock Seems like the suitable type for the node case, and seamark:sea_area:category=shoal for the area case.

Additional tagging with these tags isn't really polluting the main OSM database, though the nautical renderer ignoring all available data that isn't explicitly tagged as seamark (like natural features) seems like a questionable architecture limitations.

But it is what it is.


@Nautic First example:

hohMiyazawa commented 1 year ago

Wiki updated for the next person stumbling upon this.