New road style for the Default map style - the second version
Posted by Mateusz Konieczny on 23 July 2015 in English (English). Last updated on 29 October 2018.“map styles: Default OSM vs Google Maps” included a comparison of OSM Default map and Google maps. Now I present a similar comparison at the same location. But now with a third version - current version of new potential road style.
From left: (1) with changes developed as part of road redesign (2) currently used rendering on the OSM website (3) Google maps
Maybe it would be a good idea to make landuse=residential darker on low zoom levels to better mark built-up areas, but overall I consider this change as a significant improvement.
Changes based on feedback:
Thanks to daganzdaanda for the idea of displaying highway=tertiary as a white line, wider than highway=residential/unclassified. As tertiary roads are no longer using yellow it made possible to display secondaries using this colour, what in turn allowed to move hue of primary toward yellow.
It was not as simple as it sounds. For example, one of obvious consequences is that yellow roads are now rendered also on lower zoom levels. It is problem because the yellow roads are hard to keep visible both on landuse=farmland and unmapped land. For example using light yellow worked great on farmland but completely failed on unmapped land where it was really hard to notice.
Making highway=primary yellower allowed to render trunk in orange and keep road classes possible to differentiate.
So: highway=trunk and highway=motorway are now rendered differently.
See for example highway=trunk near Košice and D1 motorway.
and now with the new style. Game “spot highway=trunk” is now less challenging and it should be distinguishable from a motorway.
And view at the preview location from the readme
Using a grained fill pattern to indicate unpaved roads is an interesting idea that will be tested. I will also test the idea of using dashed casing for unpaved roads with tunnels marked solely by a colour change of fill and casing. There was also the idea of displaying tunnels as without fill what is also worth testing - but it is likely that displaying unpaved roads as one with dashed casing and fill would be too close. Also, size of ref shields should be reconsidered - it seems possible to make them small without losing readability.
railways
There are also changes to how railway are displayed. Some improvements of rendering railway=tram will be used after next update of map style on OSM servers. But there also problems with rendering railway=rail - both major and minor (marked by service=spur/siding/yard) rails are rendered really close. At lower zoom levels rendering of railway=rail is really close to rendering of minor roads.
I am experimenting with changes to rendering of railways. Some changes are ready for presentation and effects are visible on presented examples.
Accepted changes
I am trying to find as many improvements as possible that may be proposed, discussed, improved and accepted as an isolated change. It makes discussion easier and bugs are less likely.
Turning circles on highway=track are no longer too big, code was improved. In addition highway=proposed is no longer rendered (for discussion and reasoning behind decision see https://github.com/gravitystorm/openstreetmap-carto/issues/1654).
Currently proposed changes
There are also active pull requests, some of mine are done as part of road redesign. For example there in pull request proposing better display of minor tram tracks It is open question whatever railway=tram with service=spur/siding/yard should be rendered on z14 and z15 - feedback is welcomed (more locations with rendered before/after are listed on GitHub).
Examples of current work
Stopping too early rendering of highway=residential allows to achieve improvements like demonstrated in the first picture demonstrating changed rendering in London. But ceasing to render highway=residential on zoom levels 12 makes noise created by small buildings noticeable. These buildings are too small to be rendered in a useful way but big enough to create noticeable changes.
The simplest solution would be to start rendering buildings from z13, one zoom levels later. But some of the largest buildings may be usefully rendered on z12. Also, as usually there are additional complications (for example - moving only rendering of buildings to higher zoom level is not enough - it is necessary to move also rendering of amenity=place_of_worship).
On the left - current style. On the right - new style, including removal of highway=residential on this zoom level
And three examples of buildings may be handled:
stop rendering of all buildings (even the largest ones)
stop rendering of small buildings (threshold is arbitrary what is quite noticeable. In many places it is clear that some buildings are rendered and some not despite nearly the same size)
render only big buildings on z12 (my favourite - but it still arbitrary threshold and some big ones will not be rendered. But as rendered buildings are quite rare it is not so noticeable)
Comment from imagico on 23 July 2015 at 09:30
I have to say i lost track with all your different color scheme variants. Some of your new examples look much too strong in color for my taste. Choosing colors that are well visible next to the other colors used in the style is one thing, having colors that are far outside the range of colors used in the style otherwise another. The problem of having too many colors that are not individually recognizable is not going to be solved by using more extreme colors. This just adds to the confusion and makes it impossible to correctly group the different colors mentally (the well known rainbow palette syndrome).
Regarding urban landuse - currently rendering of the natural earth builtup areas at z=8/9 is brighter than the landuse=residential at higher zooms so it will probably not work so well to darken this at the intermediate zooms. Unifying the different landuses (residential/commercial/retail/industrial) into a common gray at z=10/11 might be a good idea though.
Comment from imagico on 23 July 2015 at 09:51
Regarding buildings: Since size of actual buildings follows a very distinct statistical distribution the idea to find a position within that distribution that approximately separates the large mass of small buildings from the few bigger ones could work. But this will of course fail badly with a way_area cutoff due to the scale variation in the map.
Comment from Jean-Marc Liotier on 23 July 2015 at 10:27
I guess I could get over the motorways not being blue… But the lack of details (removal of buildings & residential highways) at low zoom levels disturbs me even more : the noise patterns they form talk to me very nicely and I would miss them a lot.
Kudos for the tertiaries rendered as same color but slightly wider - I believe declutters while not degrading readability.
Comment from kocio on 23 July 2015 at 11:38
I think making landuse=residential darker would compensate also for lack of buildings on this level. IMO z12 is middle scale and the most important shapes here are lines (roads, railways), landuses/natural areas (water, forest, residential, industrial, military, fields, airports…) and names of cities/towns/villages. Individual buildings just don’t belong here - their generalized “pattern” is just landuse area.
But if we want to show some buildings anyway, I would consider rendering special buildings only (also called “major”). Currently they are just places of worship, but it’s way too narrow and we should expand it with other public building types, like castle or stadium. This way we would have overall impression where people live (landuse=residential) and we could spot the most important buildings easily.
Comment from gdt on 23 July 2015 at 13:01
One concept that may be useful from USGS topo maps is the “house omission tint”, which (at 1:25K scale) is about noting to the reader that there are so many houses (small buildings) that they are not shown. I wonder if building omission should be something more adaptive, so that one isolated house is drawn but many are shown as a tint. This is probably hard but I wanted to point you to it.
In general I prefer as much detail as is feasible in terms of buildings, but omitting buildings that fall below some number of pixels seems reasonable. In osmand I find that buildings are omitted too aggressively, but I tend to look at less urban areas.
For rail, I have liked the crosshatch-on-lines style used by USGS. Clearly at lower zoom only the through lines should be shown, but in general I only favor omitting things which cause objectionable clutter.
The thing I’d like to see you tackle is showing unpaved on residential/unclassified and up. Certainly I have driven on roads that I would consider tertiary that are not paved. I realize this is contentious (but don’t really understand why).
Comment from Mateusz Konieczny on 23 July 2015 at 13:25
http://www.openstreetmap.org/user/Mateusz%20Konieczny/diary/35351 is the first one and the only one among old ones that is worth checking (other are gradual evolution toward one published here or experiments)
Yes, unfortunately many version that were not so saturated failed to be properly visible. It turns out that finding styling that will be noticeable on farmland, unmapped area - especially in places where landcover is highly varied (my testing location for that purpose http://www.openstreetmap.org/#map=13/48.8487/21.1162 ).
Then started to test it on people with a bit worse eyesight.
Overall, as testing progressed it was getting more and more saturated to keep roads visible. Redesigning all landuse colors to be progressively paler on lower zoom levels (that is where problems happen) is starting to become attractive.
And I am scared to even think how bad results would be after testing it with somebody that has color blindness.
Is it about “help, why they used all possible colors” problem or something more complicated? In that second case - can you give me pointer where I can find more about this specific problem (I found only https://eagereyes.org/basics/rainbow-color-map that seems to not be relevant - I am using white and gray for the minor roads, later hue is changing across relatively narrow range from yellow to red).
I thought about changing also natural earth builtup areas.
Added to list of good ideas.
Point for options “get rid of all buildings on z12” and “keep all of the”.
Huh. Yet another interesting thing where my googling failed. Pointer to sources would be great and welcomed.
Yes, living on flat earth would really simplify map making.
Hopefully it will stay as one feature that is generally liked :)
It is more or less my opinion, Purposes of this map are unlike Humanitarian and Google maps that are designed to allow overlaying additional layers on top. At this moment, especially around z10 the problem is not displaying not enough - it is displaying too much (https://github.com/gravitystorm/openstreetmap-carto/issues/1630 has related discussion).
Even after changes map would display far more data that Google maps. In many places that would be still too much but at least typical location would be readable (pictured z12 in London, Goggle maps and new road style with - in version keeping only big buildings).
Yes, at this moment it is unfortunately not enough to use this layer as it is too slow. And even now it leads to the same problem with places that have small places of worship (though I have yet to find place with huge number of small PoW).
Comment from Mateusz Konieczny on 23 July 2015 at 13:32
It seems to work more or less like landuse=residential.
I have happy new! See http://www.openstreetmap.org/user/Mateusz%20Konieczny/diary/35416 - the previous diary entry about potential rendering of surface tag.
BTW, it seems that I forgot to post about entry about pave/unpaved to @talk.
Comment from Mateusz Konieczny on 23 July 2015 at 13:40
From what I have seen at http://store.usgs.gov/b2c_usgs/usgs/maplocator/%28ctype=areaDetails&xcm=r3standardpitrex_prd&carea=%24ROOT&layout=6_1_61_48&uiarea=2%29/.do it is not better than even current rendering.
It has worse results at places with many railways and about the same otherwise.
Comment from nebulon42 on 23 July 2015 at 17:05
Congrats for your efforts in reducing clutter! I like it already. I have to second the comment that the road colours are much too saturated. If having less saturated ones means de-saturating landuse colours then we should do so.
I also like your colour scheme (apart from saturation), it is great to have similar hues for the road hierachy. I also think you should not let yourself being distracted by calls for adopting road styles similar to a country’s default style (e.g. UK, Germany). Let’s find something independent that works. If that leads to more diversity in styles (e.g. more country specific ones) that is not undesirable IMO.
Comment from Skippern on 23 July 2015 at 19:02
I am not sure if I like it or not, but a face lift was clearly needed. Moving the style in our own direction, not following any particular known rendering is also important, as we should not be the free version of OS or anything like that.
I understand that visibility and usability in densely mapped areas have been of importance, while I generally work in areas with less details. I don’t know if there is any significant improvement for this, but will wait for the production server to adopt this before commenting further.
Comment from imagico on 23 July 2015 at 20:21
Ok - will try to explain briefly on the problem of too strong colors.
Your original choice of colors was a selection of moderately bright, moderately strong red-orange-yellow tones. These form a distinct unit within the color palette of the style that is not much used for other elements. This makes them work quite well. Problems arise (as you noticed) primarily where this set of colors is farily close to area colors used elsewhere, most notably things like beach and farmland.
Now when you make the colors stronger, i.e. move each of the colors closer to the color space edge you increase the distance between the different road colors. This means the color palette for the roads no more forms a clear unit within the overall color palette of the style. The perceptual distance between your new motorway red and the new secondary road yellow is so large for example that each of the various road colors is probably closer to a whole bunch of other colors of the style than to the other road colors. All the advantages of moving from the full color red-green-blue scheme to a more compact set of colors are gone.
A good collection of various sources with background information on color design and some specific discussions of rainbow palettes can be found on:
http://earthobservatory.nasa.gov/blogs/elegantfigures/2013/09/10/subtleties-of-color-part-6-of-6/
My specific suggestions here would be:
Comment from Mateusz Konieczny on 23 July 2015 at 20:40
Thanks!
I am not considering it as important, in fact I already abandoned it. It was just the starting point.
I am currently trying to do this.
At least roads through beaches are rare.
Comment from kocio on 24 July 2015 at 11:44
They may be running through the natural=sand however (for example in some areas of Africa).
I have no strong notion toward showing “major” buildings at this level, size matters more in this case. I would rather skip showing all the buildings for now, because they won’t make any pattern anyway (and that’s what other users were interested in), but maybe we could find sane threshold for displaying really big/important buildings. However I guess we don’t have to do it now and add them later if needed.
Last but not least: I’m deeply impressed by the work you’ve done already and the way you interact with the rest of community! While it’s called merely “new road style”, for me it’s much needed general overhaul of the middle zoom levels, because you also care for many other details. Thanks, and I mean A LOT! =}
Comment from Mateusz Konieczny on 24 July 2015 at 13:28
Can you maybe give an example where this happens? It is worth testing.
Comment from redsteakraw on 24 July 2015 at 15:40
I was skeptical at first but the new colors are growing on me. I would love to bug test, are there any test tile servers?
Comment from Mateusz Konieczny on 24 July 2015 at 16:59
At this moment - no. There are still many things that are known to be unfinished, untested or not working. Test server is planned, but it is still too early.
Comment from kocio on 24 July 2015 at 19:56
Just a quick search.
Comment from Mateusz Konieczny on 24 July 2015 at 20:06
Thanks!
Comment from SomeoneElse on 25 July 2015 at 11:33
I’m really not convinced that comparing with Google Maps is helpful. Google’s web maps mostly show only roads, since that’s all the information that Google has (compare for example http://imgur.com/miP025m with https://www.google.co.uk/maps/@53.2937291,-1.5174463,15z ).
In Google’s world bright orange makes sense, since thery’re showing relatively few classes of features, and a largely four-colour map makes sense. A cynic might suggest that Google’s target market is largely Americans who never walk or cycle anywhere; though they’re happy tell tell European public transport users which bus to get, just not where it goes.
However, OSM’s world is not Google’s world. That doesn’t mean that OSM’s standard style is perfect - far from it. Green trunks the same colour as woodland really don’t work at all. On an OSM map there are many, many different classes of feature and so moving roads towards one colour space does have advantages, but the bright orange struggles (in your initial London example) because there’s too much of it.
However the bigger problem is that the OSM Standard Style tries to be both “a nice map” and “part of the mapper feedback loop” - given the level of detail that’s being mapped in some places now I don’t see how it can do both. From reading (1) I guess that you’re limited by what would work technically as a style on osm.org now (i.e. no use of hstore and no use of lua to make the SQL sane). Would transparent overlays be in or out on that basis? You can go “too far” with them (the UK Met Office’s forecast maps show what goes wrong when you do) but perhaps a “political” background and a “natural” background overlaid with features for different consumers might work.
(1) https://wiki.openstreetmap.org/wiki/Google_Summer_of_Code/2015/AcceptedProjects/Road_style_in_Default_OSM_map_style#Objectives
(2) e.g. http://www.metoffice.gov.uk/public/weather/forecast/map/gcx4zrw25#?zoom=9&map=Rainfall&lon=-1.08&lat=53.96&fcTime=1437782400
Comment from Mateusz Konieczny on 25 July 2015 at 12:38
I am not trying to turn default style in clone of Google Maps. I used this comparison because for cities around z10 Google Maps style works better than other.
I would not use GMaps as good example of handling places where its results are not better than OSM, like more remote areas.
Google is keeping its base map in limited color range as it allows to nicely place additional data on it (overlays, search results, ads etc). Humanitarian is also designed to make easy to add overlays.
Default OSM map is not doing something like that - but as there is massive amount of other features (see https://github.com/matkoniecz/CartoCSSHelper/blob/master/lib/cartocss_helper/style_specific/default_osm_style.rb for list of displayed tags), most of them displayed in unique style I think that it is also better to not use highly varied colors for one feature. Roads are currently using blue, green, red, orange, yellow, white, gray, dark gray and brown what I think may be limited without hurting readability and usability.
Yes, in many cases these goals are opposed. But selecting information that should be displayed is always necessary. Even JOSM is not rendering all popular tags.
Yes, but for now it was not really problematic.
Transparent overlays that may be added/removed like data layer and notes layer? That would require changed on OSM website and is not planned as part of GSoC.
Comment from joost schouppe on 28 July 2015 at 09:16
I really like the way this is going. Stil would love to see an effort to include paved/unpaved at low zoom levels in a country like Argentina.
The problem with standard style being both a mappers tool and the most viewed map style for non-mappers seems to be quite recurrent. The approach of “let’s make a better looking mapper’s tool” is ok, but has it’s limitations.
It seems like for a lot of people, osm.org should showcase the full depth of mapped data. If we want to do that in a visually attractive way, we probably will need things like transparent tiled layers or more interavtively displayed themed objects. That’s a whole different project of course. But knowing that such a project is underway, might make your project a lot easier.
Comment from Tractor on 6 August 2015 at 09:31
When can we expect to see the new style implemented on the main map?
Comment from Mateusz Konieczny on 7 August 2015 at 09:22
Part is already used on osm website (minor rail and minor roads mid-zoom levels), part is ready and waits for merging and part will be ready for final testing within days.
Comment from Tractor on 8 August 2015 at 14:41
Thanks. Looking forward to see it “in real life”.