gravitystorm / openstreetmap-carto

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

Use violet-yellow color range for roads #3540

Open kocio-pl opened 5 years ago

kocio-pl commented 5 years ago

This ticket is about implementing roads color palette from alternative-colors style @imagico fork, described in this blog post: http://blog.imagico.de/more-new-colors/ .

roadcolor_z15

This is just an improvement of the current roads color scheme. Big road style redesign in 2015 (#1736) was largely a successful change, except some corner cases. like paths or tertiary roads. @matkoniecz used a clever hack to make red-yellow palette distinguishable enough, but it meant that tertiary roads need to be white - just bolder than all the lower classes. Yet this was still just a hack, design wise tertiary roads were left behind.

Unfortunately attempt to add lighter yellow was a failure (https://github.com/gravitystorm/openstreetmap-carto/pull/2228#issuecomment-236075503), because the palette was just too short. Extending it with a dark violet does the trick. It allows to make tertiary to not be oversized, which looks bad on two-carriage ways:

screenshot_2018-11-30 openstreetmap

Current works on admin borders color change lead to some grey+violet shade, which does not create problems - even 50% gray+violet is different enough (#3489):

sbbo0u5x 6 nsthx_

Now I feel 75% grey proposition is even better, which means further color distance from the borders.

A look at the roads comparison shows also that this change makes secondary roads thinner, which might help with similar two carriage ways problem with secondary:

screenshot_2018-11-30 openstreetmap 1

jeisenbe commented 5 years ago

Are you considering the changes to cycle paths that were shown in that comparison, or just the roads?

kocio-pl commented 5 years ago

This chunk is only about the roads to keep the problem manageable. However footway and path rendering change can be discussed in a separate ticket.

kocio-pl commented 5 years ago

Another consideration for yellow tertiary roads is that on the bare ground white tertiary are hardly visible, while yellow secondary are OK:

https://www.openstreetmap.org/#map=13/2.8702/11.3902

screenshot_2018-11-30 openstreetmap 3

Adamant36 commented 5 years ago

I'd like to see minor unclassified roads rendered differently then residential. Often times they are wider and contain heavier type traffic. At least here in America with roads in industrial and retail zones. Plus, most roads that qualify as unclassified in America seem to just be tagged as residential. Id like to see that change. Maybe rendering them differently so people know they are different and that residential roads aren't a catch all would help.

Tomasz-W commented 5 years ago

As there are hundreds of OSM styles (and another maps), Humanitarian style is the only one using violet roads which I know. For me, it's a totally weird idea. and I think we should sticle with classinc white-yellow-orange-red roads palette. I also find this a some regression beacause during last few years we was consequently dropping "screaming" colours, see: http://bl.ocks.org/matthijsmelissen/raw/7d2b0538a8b64b9d31e2/#14.00/51.4923/0.0425

matkoniecz commented 5 years ago

Humanitarian style is the only one using violet roads which I know

For me prominent case of purple for major roads is map style used by the Compass company (makes high-quality hiking maps of Poland, not OSM focused).

I tried really hard to use purple during road redesign but it was conflicting primarily with borders.

jragusa commented 5 years ago

I have a mixed feeling with this proposition. I also notice that several country (at least in Europe) use a blue or green shade for motorways.

dieterdreist commented 5 years ago

sent from a phone

On 30. Nov 2018, at 09:33, Adamant36 notifications@github.com wrote:

I'd like to see minor unclassified roads rendered differently then residential. Often times they are wider and contain heavier type traffic.

I agree, unclassified roads are used by through traffic, while residential roads are not, so in middle zoom levels the former could be shown more prominently to improve route planning

matkoniecz commented 5 years ago

@Adamant36 @dieterdreist

minor unclassified roads rendered differently then residential

Can you open a new issue for this discussion? See title of this issue.

Can you specify exact zlevels where either residential should be made weaker or unclassified stronger? From what I remember I tested it but I found no zlevels where either unclassified should be stronger or residential weaker from each other.

kocio-pl commented 5 years ago

@Tomasz-W

As there are hundreds of OSM styles (and another maps), Humanitarian style is the only one using violet roads which I know.

I don't even know other map styles (I don't even check how GMaps look like) and I didn't know what HOT style uses. I know however that most map styles are specialized (so they don't need too many colors - like Hike&Bike) or general (so they also don't need many colors - like GMaps). OSM Carto tries to be multi-specialized (general and specialized at the same time), so we need a lot of colors. And we have even to reuse them for different purposes.

For me, it's a totally weird idea. and I think we should sticle with classinc white-yellow-orange-red roads palette.

OSM defines many types of roads. Some of them are not popular enough yet and might be skipped for now (#1239), but main cadence is very popular, and every single type is important to be seen distinctively. Tertiary should be designed, not hacked, because we have too many white roads. Trying to cover more types in the same palette is also possible, but it will make them less recognizable. So with yellow-red you can basically try making the palette wider by adding something on the lower end (between yellow and white, but that didn't work) or something above red.

So it might be unusual, but perfectly valid and systematic approach.

I also find this a some regression beacause during last few years we was consequently dropping "screaming" colours, see: http://bl.ocks.org/matthijsmelissen/raw/7d2b0538a8b64b9d31e2/#14.00/51.4923/0.0425

  1. Dark violet is not screaming for me in any way. It's just highly saturated, but "weaker" than red roads for example.

  2. When thinking about strong/mild colors, it heavily depends on the type of geometry. We just added "screaming" orange for gastronomy, because it's used for nodes, which are small and would be lost otherwise (in fact, orange nodes sometimes are too light already - see https://github.com/gravitystorm/openstreetmap-carto/issues/2848#issuecomment-330097832). Lines can also be less visible (German fork is less shy about making them strong - see https://www.openstreetmap.de/karte.html ), so the only real danger comes from areas. They can easily dominate everything else. But even then, when some type of area is rare enough, it can be strong without harming the map (see #2339).

matthijsmelissen commented 5 years ago

I'm actually quite happy with the tertiary roads as they are. I'm not sure if expanding the colour palette for roads will actually cause a more readable map.

kocio-pl commented 5 years ago

I understand that you are happy with current rendering, because I'm also happy with most of it, but do you think that yellow tertiary instead of white will be less readable (and not more readable)?

matthijsmelissen commented 5 years ago

The issue is not about making yellow tertiary, it is about adding an extra color to the palette that will make it less readable.

kocio-pl commented 5 years ago

Of course there is more than just this (but also about it), but I still don't get what exactly will make it less readable in your opinion (I guess you don't claim that it will be equally readable as currently)?

jeisenbe commented 5 years ago

I was initially unhappy about this idea, but I now believe it is a good idea. I've been working on improving the highway=construction rendering, and I've seen that the current secondary color is not easily visible without a casing.

By changing secondary highways to use light orange they will be more visible at mid and low zoom levels, including when rendered as a thin line as highway=construction & construction=secondary at z13.

This will also make it possible to render secondary highways with a light orange line at z9 and z10, which will make them more visible and also make it possible to lighten the color of railways at z8 and z9, as proposed in #3538 "Clean up z8-10".

Tertiary could then use yellow, so it could be rendered slightly narrower than primary highways at higher zoom levels. The yellow color would also distinguish tertiary_link roads from residential and minor highways, even if we make tertiary_link narrower, as planned in #3570

The main disadvantage is that it will add another road color. We already have 4 main road colors plus white for minor roads (and gray for pedestrian areas). I don't see a great deal of harm in going from 4 to 5 colors.

polarbearing commented 5 years ago

Improving highway=construction rendering is fine, however it should not imply a change of the whole road palette.

jeisenbe commented 5 years ago

The main advantage would be allowing rendering of tertiary with a thinner line than secondary/primary highways. In many countries highway=tertiary are quite narrow, often only 4 to 6 meters wide. Near the equator this means that the current rendering is still too wide even at z19, but we can't make the rendering much narrower without confusing highway=tertiary with highway=residential/unclassified as long as tertiary has the same white fill.

Tertiary width at z19: 27 pixels = 8.1 meters

(one pixel is 0.3m wide at the equator at z19, so 27 pixels wide is 8.1)

If we switch the color spectrum for roads and use light yellow for tertiary, each class of road could have a slightly different width at mid-high and high zoom levels, and tertiary roads could be thin enough that they would not be significantly wider than their actual width at z19.

kocio-pl commented 5 years ago

I agree and I still support this proposition.

@imagico What is your take? I understand that this is your idea, but the context of a production system might be different from development model and I'm interested what details do you see here.

imagico commented 5 years ago

The way i developed this in the form shown above was in combination with various other color changes in this style. It would certainly depend on non-purple boundary rendering to work.

There is certainly also some disadvantage in widening the color spectrum used for roads in terms of perceiving the road colors as a compact group of colors in the style. In the ac-style this is IMO more than amply compensated by other color scheme restructuring and clarification changes (like the elimination of blue from all non-water uses and the reduction in the number of POI symbol colors).

More examples on how this looks in that context can be found here:

http://www.imagico.de/map/ac_samples_en.php

There are other options for rendering roads with the given classification system and including yellow tertiaries - the German style demonstrates one of them.

kocio-pl commented 5 years ago

I still don't feel any change is needed in the current style to implement this, however there are possible changes that would help (like different color for borders).

Since this proposition in its current form received mixed reactions, I propose to close this (and open more general ticket for rethinking road color scheme, if someone thinks there is a need).

imagico commented 5 years ago

I don't see objections from maintainers here so far that would warrant rejecting the idea. @matthijsmelissen voiced concerns about an additional road color in isolation affecting readability but as i mentioned you can't really do color design just by looking at individual color changes separately.

Closing this would mean rejecting the idea of a purple to yellow + white road color scheme. As @matkoniecz mentioned the main reason why purple motorways were not seriously considered originally was the purple boundaries. Unless we want to reject the possibility of non-purple boundaries i don't see a reason to definitely reject this idea for roads.

As indicated the most sensible order of changes is probably to do other color changes before this and then decide if this is a good idea. But it is important to keep in mind how these thing interrelate.

kocio-pl commented 5 years ago

I don't think closing specific ticket to discuss more generic problem means rejecting anything. We close many tickets with good ideas because it does not seem to be realistic at the moment and we do reopen them when the circumstanes change. But that's OK for me to left it open for future decisions.

Unfortunately we have no tools in GitHub for showing dependencies between tickets. Moreover there are many different tickets on improving road system and borders, so there is a bit of ticket mess.

dieterdreist commented 5 years ago

sent from a phone

On 10. Sep 2019, at 12:24, Christoph Hormann notifications@github.com wrote:

More examples on how this looks in that context can be found here:

http://www.imagico.de/map/ac_samples_en.php

in the Freiburg area IMHO readability suffers for secondary roads with these changes (gray to orange/yellow): http://www.imagico.de/map/pict/ac_samples/freiburg_z10.png

Maybe this could be compensated with more contrast for the casing?

imagico commented 5 years ago

in the Freiburg area IMHO readability suffers for secondary roads with these changes

That depends on how you define readability i think. If you mean the ability to identify and distinguish secondary roads from other road types i think the opposite is the case.

Keep in mind that apart from the road color change this example shows a lot of other differences to OSM-Carto. And i specifically wanted to reduce the weight of roads rendering in general because i think it is over-emphasized in OSM-Carto. My impression is that this map style is less used for road centric applications and mappers have a less strong focus on roads than the weight of roads in rendering might indicate and the emphasis on roads is probably more owed to the fact that developers throughout the history of this style have often taken cues from other maps with a different user base and thematic focus.

dieterdreist commented 5 years ago

Am Mi., 11. Sept. 2019 um 11:29 Uhr schrieb Christoph Hormann < notifications@github.com>:

That depends on how you define readability i think. If you mean the ability to identify and distinguish secondary roads from other road types i think the opposite is the case.

what I meant was the contrast of the secondary roads with the saturated background greens, they are hard to see. It is not completely impossible to see them, but it could be much easier.

imagico commented 5 years ago

But that is not an inherent property of the road color change but of the interaction with the other changes implemented - which as explained has been intentional.

If here we'd decide we want to keep more emphasis on roads that is still perfectly possible with the shifted color scheme for roads.

dieterdreist commented 5 years ago

what about a casing that makes them stand out more? Could for example be darker.

imagico commented 5 years ago

I am not sure what you are aiming at here. If you'd want to emphasize secondary roads in the ac-style at z10 you surely could. But this has no bearing on this issue and this style because adopting the same color scheme for roads here would lead to different results. If we'd adopt other changes here - like suggested in #3670 - that might change.

The main problem about designing road colors and drawing style is that it has to work in very different settings. And whatever styling change you might think improves the map in one setting often makes it worse in others.

dieterdreist commented 5 years ago

besides colors, what is needed for contrast, is a different brightness. If you have both, bright and dark, on the same line, it will always be discernible.