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

Rivers and canal lines and areas should be darker than other water areas #3896

Open
jeisenbe opened this issue Sep 21, 2019 · 27 comments · Fixed by #3930 · May be fixed by #4128
Open

Rivers and canal lines and areas should be darker than other water areas #3896

jeisenbe opened this issue Sep 21, 2019 · 27 comments · Fixed by #3930 · May be fixed by #4128
Labels
consensus needed Indicates the lack of consensus among maintainers blocks a PR/issue water

Comments

@jeisenbe
Copy link
Collaborator

Expected behavior

  • River and stream lines should be a darker and more visible blue color than lakes and seas, so that they can be seen at low zoom levels when over dark landcover like forests.
  • For the same reason, river areas should be darker and the same color as river/stream lines
  • Areas of waterway=riverbank and water=river should be distinguished from lakes, reservoirs, ponds and other non-flowing water bodies
  • Mappers should get feedback about river areas that are missing water=* tags

Actual behavior

  • All areas of water and water lines are rendered in the same color
  • No feedback is given if a river is mapped incorrectly with just natural=water
  • River lines are not very easy to follow on areas of forest, especially at lower zoom levels

This issue blocks merging PR #3670 to fix #3513 and possibly #3647

@jeisenbe jeisenbe added the water label Sep 21, 2019
@jeisenbe jeisenbe added this to the Bugs and improvements milestone Sep 21, 2019
@polarbearing
Copy link
Contributor

Question is if we want a riverline to be visible in a lake. Getting the riverline through is important for waterway routability, not necessarily nice visual rendering.

@jeisenbe
Copy link
Collaborator Author

Displaying river lines over water areas would provide mapper feedback about the geometry, but it would not meet expectations about how a map should look, and it might encourage mappers to remove waterways within lakes, so I would not recommend this.

Fortunately, water lines are now rendered under water areas (since v4.21.0), so we can now change the river color without having rivers appear over water areas.

@jeisenbe
Copy link
Collaborator Author

jeisenbe commented Oct 5, 2019

There's some discussion on the related issue #3895 about how it will look where a river meets the ocean (or lake). Here are some examples from Hamburg (you'll need to enlarge to full size):

z13 current
z13-hamburg-current

z13 after changing river color
z13-hamburg-after

z14 Hamburg current
z14-hamburg-before

z14 Hamburg after
z14-hamburg-after-rivercolor

z14 southeast current
z14-elbe-hamburg-before

z14 southeast after
z14-elbe-hamburg-after

z15 Alster current
z15-alster-before

z15 Alster after
z15-alster-after

z18 Alster current
z18-alster-before

z18 Alster after
z18-alster-after

z17 Tiefstackschleuse canal lock comparison
z17-tiefstackschleuse-compare

z16 Elbe river coastline transit before
z16-elbe-coastline-transit-before

z16 Elbe river/coastline after

  • I'm not sure why the coastline is placed here, it looks like it was a somewhat arbitrary decision
    z16-elbe-coastline-transit-after

z16 Elbe river/coastline aerial imagery in iD
z16-elbe-transit-aerial-imagery

z15 after

  • Coastline location was previously invisible here.
    z15-elbe-after-transit

@jeisenbe
Copy link
Collaborator Author

jeisenbe commented Oct 6, 2019

Comparisons in Luxembourg:

z13 Luxembourg city before
z13-luxembourg-before-large
z13 city after - rivers in new river-color
z13-luxembourg-after-rivercolor

z13 Rural luxembourg before
z13-central-luxembourg-before
z13 rural after
z13-central-luxembourg-after-rivercolor

z13 Lac de la Haute Sure before
z13-lac-de-la-haute-sure-before
z13 Lac after
z13-lac-de-la-haute-sure-after-rivercolor

z16 dam side of lake before
z16-sure-dam-before
z16 dam after
z16-sure-dam-after-rivercolor

z17 river inlet of lake before
z17-sure-border-before
z17 inlet after
z17-sure-border-rivercolor-after

@jeisenbe
Copy link
Collaborator Author

jeisenbe commented Oct 6, 2019

Some rivers in Wales:

z15 after - coastline transit here shares a way with the national park boundary
z16-afon-after

z17 Afon Rhythallt river and lake - before
z17-afon-rhythallt-river-lake-before
z17 after
z17-afon-rhythallt-river-lake-after

z15 river-lake before
z15-wales-river-lake-before
z15 after
z15-wales-river-lake

z16 Afon Glaslyn river mouth before
z15-afon-glaslyn-before

z16 after
z15-afon-glaslyn-after

z14 Afon Seiont in Caernarfon before
z14-caernarfon-before
z14 after
z14-caernarfon-after

z16 Afon Seiont before
z16-afon-seiont-before
z16 after
z16-afon-seiont-after

@kocio-pl
Copy link
Collaborator

kocio-pl commented Oct 6, 2019

Reference to a discussion about oceans - see #3895 (comment): rendering sharp borders between water areas is introducing artifacts for me, so I'm against simple adding colors, I guess using smooth transition would be enough to avoid it.

Dark rivers are needed only on low/midzoom, because they are rendered as thin lines there, so we could use color progress (the higher zoom level, the lighter color).

BTW - are there any salt rivers? It would be good to test #3901 (white dots overlay) with such a dark color.

@kocio-pl
Copy link
Collaborator

kocio-pl commented Oct 6, 2019

River and stream lines should be a darker and more visible blue color than lakes and seas, so that they can be seen at low zoom levels when over dark landcover like forests.

What about other waterways, like canals or ditches? (see https://taginfo.openstreetmap.org/keys/waterway#values)

@jeisenbe
Copy link
Collaborator Author

jeisenbe commented Oct 6, 2019 via email

@kocio-pl
Copy link
Collaborator

kocio-pl commented Oct 6, 2019

Great, could you please update the ticket name/description with general "waterways" then?

@kocio-pl
Copy link
Collaborator

kocio-pl commented Oct 6, 2019

I guess waterway zoom progression lightening might be especially important in Japany or Holland, since they have a lot of rivers and canals - could you test a dark version of a Tokyo area and Amsterdam area?

Screenshot_2019-10-07 OpenStreetMap

Screenshot_2019-10-07 OpenStreetMap(1)

@jeisenbe jeisenbe changed the title Rivers lines and areas should be darker than other water areas Rivers and canal lines and areas should be darker than other water areas Oct 6, 2019
@jeisenbe
Copy link
Collaborator Author

jeisenbe commented Oct 6, 2019

could you please update the ticket name/description

Done. I added "canals".

The problem is not so visible with the narrow linear waterways, since they are only mapped as lines, not areas, and they have a light color casing. However, they should also have their color changed to match rivers and canals at first.

(In the future we should develop a subtle distinction between streams and ditches/drains, but that isn't part of this issue.)

@jeisenbe
Copy link
Collaborator Author

jeisenbe commented Oct 7, 2019

waterway zoom progression lightening might be especially important in Japan or Holland, since they have a lot of rivers and canals - could you test a dark version of a Tokyo area [link to z9] and Amsterdam area [link to z13]?

I can test the z13 area in the Netherlands, but my laptop only has 6 GB of ram, so I don't think I can import the whole z9 Tokyo area.

Since the current water color is not faded at low zoom levels, I don't think it's necessary to introduce multiple different colors for water at different zoom levels. This makes it harder to read the map and difficult to develop a map key/legend.

Also, remember that I want to merge PR #3670 which will remove the color fading from z12 and lower, so in the future z9 to z11 should look more similar to the current z13 and z12 rendering. This will make it unnecessary to fade colors at low zoom levels - instead the different landcover colors would be combined. But the water colors should still be distinguished:

  1. there will only be 3 (very similar) blue colors used for water: this is still less than the proposed number of green landcover colors for low zoom
  2. The darker river/canal color will still be needed at low zoom level, if the fading is removed, so that rivers can be seen over woodland areas
  3. The different colors are very subtle at low zoom level. It's often not noticeable unless you are looking for it, since the rivers and lakes are smaller. For example, I couldn't see where this river to lake transition was at first, until I zoomed in, and this is only z13; lower zoom levels are even more subtle:

z13-lac-de-la-haute-sure-after-rivercolor

@kocio-pl
Copy link
Collaborator

kocio-pl commented Oct 7, 2019

Since the current water color is not faded at low zoom levels, I don't think it's necessary to introduce multiple different colors for water at different zoom levels. This makes it harder to read the map and difficult to develop a map key/legend.

This works good for special buildings, I see no problem with that.

However this is just the idea at the moment to prevent unnecessary dark river color at high zoom - it's not needed for water type distinction nor the current river color is unclear there.

This will make it unnecessary to fade colors at low zoom levels

I mean making river color fading from low (dark blue) to high zoom (close to a current blue), not the other way around.

@kocio-pl
Copy link
Collaborator

kocio-pl commented Oct 7, 2019

I can test the z13 area in the Netherlands, but my laptop only has 6 GB of ram, so I don't think I can import the whole z9 Tokyo area.

Sorry, I forgot to test it on German fork - they have strong roads, but Tokyo area rivers look OK for me:

Screenshot_2019-10-07 OpenStreetMap Deutschland Karte

It seems that Amsterdam is tagged in some other way, since in this area the waterways color seems to be not darken:

Screenshot_2019-10-07 OpenStreetMap Deutschland Karte(1)

@jeisenbe
Copy link
Collaborator Author

jeisenbe commented Oct 7, 2019

Here is one of the larger countries with fairly complete landcover mapping which my laptop can render at z8. This is the first level where river lines are shown.

z8 current - Latvia
z8-latvia-before

z8 with darker rivers (2 water colors)
z8-latvia-2colors-water

z8 with darker rivers and lighter ocean (3 water colors)
z8-latvia-after

z8 with darker rivers and 4 landcover colors (after PR #3670) - ocean same as lakes
z8-latvia-2colors-water-4colors-landcover

z8 with darker rivers, lighter ocean and 4 landcover colors (PR #3670 + issue #3895)
z8-latvia-3colors-water-4colors-landcover

@kocio-pl
Copy link
Collaborator

kocio-pl commented Oct 7, 2019

Thanks for another example. Rivers look OK in every case, 4 landcover colors look bad for me in both cases (too strong high vegetation green).

Also the ocean looks good only with 2-color water version, it's bad (too pale) when light and I even a current version looks weak in comparison.

@jeisenbe
Copy link
Collaborator Author

jeisenbe commented Oct 7, 2019

Riga, Latvia

z10 before
z10-riga-before

z10 river-color and new water-color
z10-riga-2colors-water

z10 river and water color and 4 colors for landcover (but oceans same as lakes)
z10-riga-2colors-water-4colors-landcover

z10 three colors for water, current landcover fading
z10-riga-3colors-water

z10 three colors for water and 4 landcover colors
z10-riga-after-3color-water-4color-landcover

Daugava river mouth, near Riga, Latvia

z13 before
z13-daugava-mouth-before

z13 new river-color and water-color
z13-daugava-2color-water

z13 three water colors
z13-daugava-mouth-3color-water

@jeisenbe
Copy link
Collaborator Author

jeisenbe commented Oct 7, 2019

FYI, the german style is using slightly different colors than those tested above. They use:

@water-color: #aad3df;     // Lch(82,15,224)
@ocean-color: #b9d3dc;     // Lch(83,10,227)
@river-color: #97c9d8;     // Lch(78,18,225)

See https://github.com/giggls/openstreetmap-carto-de/blob/master/style.mss

But I have been testing:

@water-color: #a2d1e0;     // Lch(81,17,227)
@ocean-color: #b5d7e3;     // Lch(84,13,227)
@river-color: #8fcadd;     // Lch(78,21,227)

Main differences are that the tested river-color has higher chroma (and saturation), and the ocean-color is a little lighter but also a little higher chroma.

@jeisenbe
Copy link
Collaborator Author

jeisenbe commented Oct 9, 2019

Following up comments in the related issue (#3895 (comment) and @kocio-pl mentioning trying less contrast), here are tests with oceans similar to the current water-color, but lakes in a new color intermediate between the new river-color and the new ocean-color. This is gives quite low contrast between each step; I don't think it would be possible to make the colors any more similar and still distinguish lakes from rivers.

@ocean-color: #aad3e0;     // Lch(82,15,227)
@water-color: #9dcede;     // Lch(80,18,227)
@river-color: #8fcadd;     // Lch(78,21,227)

hex-low-contrast

lch-low-contrast

z15 Ardalstangen Norway, current
z15-ardalstangen-before

z15 low contrast water colors
z15-ardalstangen-lowcontrast

z15 low contrast water colors with 2px gradient around coastline
z15-ardalstangen-lowcontrast-2px-gradient

z15 previously tests water colors (same as alt-colors style)
z15-ardalstangen-altcolors

z14 Utla river - lake transition - current
z14-utla-lake-before

z14 lake low contrast
z14-utla-lake-lowcontrast

z14 lake high contrast (alt-colors)
z14-utla-lake-altcolors

z15 Utla river - lake transition - current
z15-utla-lake-before

z15 lake low contrast
z15-ulta-lake-lowcontrast

z15 lake higher contrast (alt-colors)
z15-utla-lake-altcolors

@jeisenbe
Copy link
Collaborator Author

jeisenbe commented Oct 9, 2019

z13-daugava-gradient-4px
z13 Daugava river mouth (Riga, Latvia) - before
z13-daugava-mouth-before

after - Lower contrast
z13-daugava-lowcontrast

Previous test (higher contrast)
z13-daugava-mouth-3color-water

lower contrast with gradient outline
z13-daugava-lowcontrast-3px-gradient-small

Previous colors with gradient outline
z13-daugava-gradient-4px

It seems that the outline makes more of a difference than the slightly different ocean color.

@imagico
Copy link
Collaborator

imagico commented Oct 9, 2019

Generally speaking i am not a fan of compromises between showing something and not showing something (a.k.a. fading) or between differentiating things and not differentiating things.

Are there actually any cases where you think the color scheme you now tried works better than the one tested before? And i of course mean that the difference between different types of waterbodies is less visible is not an advantage.

As a general rule: When things are shown in different colors but the color difference is not readable map readability is decreased because the color differences - even if not readable - lead to poorer identifiability and less clear color relationships with other colors in the map.

@jeisenbe
Copy link
Collaborator Author

jeisenbe commented Oct 9, 2019

Are there actually any cases where you think the color scheme you now tried works better than the one tested before?

No.

However, it succeeded in getting us to consensus on @river-color: #8fcadd; // Lch(78,21,227) - see #3895 (comment) - so now we can start with adding the new river-color, and then work on adjusting the ocean and lake color further in another PR.

I think we might still need to make the ocean a touch lighter, and perhaps lakes can also be lighter to increase the contrast between lakes and rivers.

@jeisenbe
Copy link
Collaborator Author

Reopened by #3955

@jeisenbe jeisenbe reopened this Oct 28, 2019
@jeisenbe
Copy link
Collaborator Author

@kocio-pl requested a summary of the reasons for showing rivers differently than lakes in a comment on closed PR #3930 - I think this is a more helpful place to discuss the general issue.

As mentioned above, there are 3 main reasons to show rivers differently than other water bodies:

  1. River and stream lines need to be more visible so that they can be seen at low zoom levels when over dark landcover like forests. Rivers and other waterways are long and narrow, which makes it harder to follow them than large water areas like lakes or the seas. For the same reason, river areas should be darker and the same color as river/stream lines

  2. Areas of waterway=riverbank and water=river should be distinguished from lakes, reservoirs, ponds and other non-flowing water bodies.

This makes the map more legible by clearly distinguishing waterways (like rivers, canals) from lakes and seas. Since waterways need to be darker/higher contrast with landcover, due to point 1 above, lakes can be a bit lighter and less chroma.

  1. Mappers should get feedback about river areas that are missing water=* tags.

In the past waterway=riverbank was the standard way to map all rivers, but now a number of editors are using natural=water, so water=river needs to be added. This can be easy to forget, so mappers need visual feedback from this style to make sure that the tag isn't missing from some segments of a river.

@imagico
Copy link
Collaborator

imagico commented Oct 28, 2019

In #3930 (comment) @kocio-pl wrote:

I have proposed 3 different solutions and 2 of them preserves original 3-color proposition, I think this is quite a lot of constructive feedback.

Could you please point to the specific suggestions?

@imagico imagico added the consensus needed Indicates the lack of consensus among maintainers blocks a PR/issue label Nov 15, 2019
@Adamant36
Copy link
Contributor

Is there a way in CartoCSS to blend the colors of two polygons together where they meet, like the last X amount of pixel along the side where they join or something, or is that not possible?

@imagico
Copy link
Collaborator

imagico commented Nov 19, 2019

No, this is not possible and is also quite unlikely to be implemented because it would be computationally expensive. What has been shown so far as examples here are one sided edge gradients of the coastline that depend on using the coastline line data set in addition to the coastline polygon data.

And as said - deliberately blurring geometries that have been placed by mappers with consideration and where accurate positioning is of significance for data users would clash with the goals of this style.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
consensus needed Indicates the lack of consensus among maintainers blocks a PR/issue water
Projects
None yet
5 participants