Google Summer of Code/2015/AcceptedProjects/Road style in Default OSM map style

From OpenStreetMap Wiki
Jump to: navigation, search



Improve styling of roads and paths including rendering of surface tag in openstreetmap-carto, the default OSM map style. This project includes designing new road style from scratch, starting from researching how other successful styles are designed. Style will be implemented, tested and improved based on feedback. New style should result in more readable map, displaying more usable information that will also provide better feedback to mappers. "Roads and paths" includes roads - from highway=motorway to highway=service but also features like highway=footway/steps/path/cycleway/track/bridleway and other special road types like highway=road/construction.

Produced work:

  1. before mid-term evaluations - proposal of a map style in form of working CartoCSS style designed for a single zoom level
  2. final result - pull request with proposal for a new style

Weekly Progress

Week 1

Check how roads are displayed on various maps (primarily - maps rendering OSM data). I will ask on talk tagging list about how maps are showing surface and toll status, in that cases I would like to have more examples than I found for now.

Week 2

Continue week 1, produce list of what I liked in reviewed maps. Make general description of style that I want to create (how highway type, access and surface will be displayed). Make unit test for checking layering of roads (respecting highway and layer tags, also with bridge/tunnel tags). See how data is currently queried to display data in current version of road rendering.

Week 3

Make first version of a new style for a single zoom level - consider only highway and surface tags (and ignore tags like tracktype, service, toll, bridge, tunnel).

Week 4

Further refine style, it may be necessary to restart from scratch. Add ability to test multiple tags in CartoCSS helper (it is necessary for testing rendering of turning loops, at least in current version of style). Make unit tests checking whatever wanted highway types are really rendered.

Week 5

Add support for all tags - tracktype, service, bridge and tunnel tags. Maybe also toll tag.

Week 6

Publish style using server provided by mentor. Fix reported bugs, tweak style based on feedback.

Week 7

Continue fixing found bugs, and react to feedback.

Week 8

buffer week with nothing planned

Mid-term evaluations after 8th week expected work finished: now map style for a single zoom level showing most road types

Week 9

Start expanding style to higher/lower zoom levels, present the first version

Week 10

Finish expanding style to higher/lower zoom levels, start reviewing over wide variety of places

Week 11

Continue reviewing tweaking and improving.

Week 12

Benchmark new and old style, attempt to optimize new one (I never did something like that so pointing toward good resources about how it should be done would be great)

Week 13

Make a pull request, publish "final" version of style. Tweaking and bugfixing is expected.

Week 14

Tweaking and bugfixing based on comments in PR.

Week 15

Tweaking and bugfixing based on comments in PR.

Week 16

buffer week with nothing planned


There is no limit of additional things that would be nice to do, and in case of project progressing on schedule there are two buffer weeks. Some interesting additional goals include:

  • rendering toll tag
  • merge segmented roads (#497).
  • do some form of A/B testing (maybe via crowdflower platform? Normal

pricing is ridiculous but supposedly there are huge discounts for students.). Maybe using Amazon Turk?

  • additional automatic tests
  • rendering man_made=bridge
  • road width depend on local map scale rather than zoom level

Note that it is not highly likely that any of additional goals will be done as part of this GSoC project.