Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Render beaches and rocks in the tidal range differently #3707

Open
ghost opened this issue Mar 5, 2019 · 12 comments
Open

Render beaches and rocks in the tidal range differently #3707

ghost opened this issue Mar 5, 2019 · 12 comments

Comments

@ghost
Copy link

ghost commented Mar 5, 2019

It would be useful if natural=beach and natural=bare_rock in the tidal range, i.e., below natural=coastline would be rendered differently, e.g. by overlaying them with the natural=wetland pattern:

rendering-area-beach2

@imagico
Copy link
Collaborator

imagico commented Mar 5, 2019

Depends on #1982. See also #1473, #1547.

Note rendering of beaches with a surface tag is already designed to look differently over water and over land - see #1990.

@jeisenbe
Copy link
Collaborator

jeisenbe commented Jun 3, 2019

This issue was partially fixed by PR #3738 - now beaches and shoals with a surface tag should have a pattern that renders over the ocean water, but the fill color is covered by the water.

The remaining issue is with natural=bare_rock which now is covered completely by the marine water, outside of the coastline. While natural=bare_rock has a pattern, this pattern is not shown above the water fill, but rendered in the main landcover layer.

This can be easily changed if this is considered worthwhile.

@jeisenbe
Copy link
Collaborator

jeisenbe commented Jun 4, 2019

@SelfishSeahorse - I have code to test which moves the bare_rock pattern above water areas, but I need some examples of where this would make a difference. Can you provide a link to a place outside of the coastline and a place in a lake or river where there is bare_rock?

@ghost
Copy link
Author

ghost commented Jun 9, 2019

@jeisenbe wrote:

This issue was partially fixed by PR #3738 - now beaches and shoals with a surface tag should have a pattern that renders over the ocean water, but the fill color is covered by the water.

Very nice! Thanks a lot for your work!

@jeisenbe wrote:

@SelfishSeahorse - I have code to test which moves the bare_rock pattern above water areas, but I need some examples of where this would make a difference. Can you provide a link to a place outside of the coastline and a place in a lake or river where there is bare_rock?

Please excuse my late reply. Here's a large area of bare rock that is only visible at low tide (i've just added the missing tidal=yes, but i guess that it's not needed):

https://www.openstreetmap.org/way/660708388

Unfortunately i don't have an example of bare rock in a lake or river. I don't even know how to map and tag elements in a lake or river only visible at baseflow. (How is baseflow defined on OSM?)

@georgek
Copy link

georgek commented Aug 3, 2019

Another thing that would help is to actually render the mean high water level above any beaches or tidalflats. I've been experimenting with this myself, but unfortunately it's quite hard to do with the way OSM coastlines and riverbanks are currently done.

Still, it would look like this:

Screenshot_2019-07-22 OpenStreetMap Carto — Kosmtik(1)

@jeisenbe
Copy link
Collaborator

jeisenbe commented Aug 4, 2019 via email

@georgek
Copy link

georgek commented Aug 4, 2019

Oh, I set the project up locally and thought the beaches not rendering properly was a bug. I reinstated their rendering for the above screenshot.

In that case, I have quite a strong distaste for this feature. It means that beaches are rendered completely differently to tidalflats, which is going to cause very strange results. First, see the above area with the current master:
Screenshot_2019-08-04 OpenStreetMap Carto — Kosmtik

The distinction between tidal flat and beach is difficult. These are tagged as beaches because there are sandy areas where people can play at all states of the tide. The beaches in this area also famously very large and have massive amounts of sand that is accessible at low tide. The adjacent flats aren't really accessible or useful for leisure even though they may also be sandy.

At low zooms the extent of these beaches isn't even visible at all now:
Screenshot_2019-08-04 OpenStreetMap Carto — Kosmtik(1)
(Note also another strange looking interaction with a tidal flat on the left).

Another example where this has bad results is a beach like Brighton in the UK. This beach is famously gravelly, but is well-known to reveal sand at low tides (ie. there is sand below mean high water). This information is going to be very hard to see with this new rendering.

In my opinion the best way to show this is to show it how I've done it above and how Ordnance Survey and other maps show it: render areas of mud, sand, gravel, stones, bare rock etc. as land when it is within the mean low water level. Then render the mean high water level over the top as a blue line. The mean low water level could be shown explicitly too (OS use thick and thin lines to distinguish).

I've been working on doing just that but it's difficult at the moment due to how OSM data is. I'm planning to propose that we start properly tagging mean high/low water levels and riverbanks which would mean it's possible to render those. But this current solution is completely unsatisfactory, in my opinion.

@georgek
Copy link

georgek commented Aug 4, 2019

Another example, well-known seaside holiday town Hunstanton doesn't even have a beach now:
Screenshot_2019-08-04 OpenStreetMap Carto — Kosmtik(3)

Unless you look closely, of course. But the magic yellow colour is going to make many people think this is incorrectly mapped and I bet some mappers will move the coastline out to mean low water just to make the beach render here.

Here is how Ordnance Survey render the same area (the coastal data we have in OSM at the moment for that area is from Ordnance Survey):
Screenshot_2019-08-04 Location Map

@imagico
Copy link
Collaborator

imagico commented Aug 4, 2019

It means that beaches are rendered completely differently to tidalflats

That is intentional - beaches are something very different from tidalflats. Beaches are formed by waves, therefore consist of sand or coarser material and always have a significant incline. Tidal flats are formed by tides, are typically very flat and depending on the conditions are often structured with tidal channels of various size (which are absent on a beach because they can't form in a wave dominated environment).

In the UK you can find in some areas use of natural=beach for tidal flats with a sand surface - based on a local historic practice from a time when wetland=tidalflat was not yet established. But because this is an atypical local anomaly unique to the UK we have not adjusted rendering to accommodate this.

In other words: natural=beach and wetland=tidalflat are distinguished by geomorphological characteristics and not by surface material. To differentiate surface material use surface=sand/surface=mud.

@georgek
Copy link

georgek commented Aug 4, 2019

That's fine, and I agree. Beaches and tidal flats are different. Just from a leisure point of view, nobody wants to go and walk on a tidal flat.

But it's very hard to draw the line between them and it's easy to find beaches which are shaped by both waves and tides, indeed they are all over Norfolk and other gentle coasts. Is Hunstanton Beach a tidal flat? I think not.

At some point down that coastline we change from beach to tidalflat. To have a sharp cut off because the rendering is so different is ugly. If one were to tag the "lower" extent of those beaches as tidal flats and the upper parts as beaches it would look even worse with the lower flats being rendered much more prominently than the beach.

Making the distinction between beach and tidal flat would be useful, but I suggest something much less jarring because these two areas will often be right next to each other and even touching.

Making the distinction about where the intertidal zone is is also very useful, but the way it has been done currently is very unsatisfactory as I have hopefully shown here.

@georgek
Copy link

georgek commented Aug 9, 2019

Will this be addressed here or should I open a separate bug?

@jeisenbe
Copy link
Collaborator

jeisenbe commented Aug 9, 2019 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants