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

Increase width of roads at high zoom #1861

Merged
merged 1 commit into from
Sep 27, 2015

Conversation

vholten
Copy link
Contributor

@vholten vholten commented Sep 22, 2015

In the recently merged new road style, roads are rendered quite narrow at zoom levels 18 and 19, especially residential and unclassified roads. At zoom 19, these roads are rendered much narrower than their real width. I propose to slightly increase the width of roads at zoom 18, and more so at zoom 19. At zoom 19, also the label font size is increased slightly.

See also the discussion at #1290.

Zoom 18 before / after:
brooklyn z18
Zoom 19 before / after:
brooklyn z19

Zoom 18 before / after:
brooklyn 2 z18
Zoom 19 before / after:
brooklyn 2 z19

Zoom 18 before / after:
krakow z18
Zoom 19 before / after:
krakow z19

Increase width of roads at zoom levels 18 and 19

Increase turning circle size at zoom 18 and 19

Increase text size for road labels at zoom 19
@ximex
Copy link

ximex commented Sep 22, 2015

👍

@imagico
Copy link
Collaborator

imagico commented Sep 22, 2015

Better also test at low latitudes, one of the primary reasons for narrowing the roads was readability in such areas:

http://www.openstreetmap.org/#map=18/1.29669/103.85381
http://www.openstreetmap.org/#map=18/14.59796/120.98173

The alternative would be to use variable width at the high zooms like in #1853.

@Circeus
Copy link

Circeus commented Sep 22, 2015

Yes please. In many areas, this can cause some serious visual issues for areas that connected to these roads. Example (cf. actual distance)

@mboeringa
Copy link

I agree this needs more testing, and will probably, and especially, not work at Z18.

While this may be OK in "US" type cities with extremely wide roads, many historic city centres in Europe have very narrow roads, and the current rendering may already cause issues. Current rendering of roads already overlaps building contours in many places at Z18.

E.g. see these samples at Z18:
Austria, Vienna:
http://www.openstreetmap.org/#map=18/48.20995/16.36565
France, Mont Saint Michel:
http://www.openstreetmap.org/#map=18/48.63582/-1.51101
Italy, Siena:
http://www.openstreetmap.org/#map=18/43.31833/11.33061
Italy, Florence:
http://www.openstreetmap.org/#map=18/43.76959/11.25241

@vholten
Copy link
Contributor Author

vholten commented Sep 22, 2015

Thanks for the comments. Here are the examples from the requested low-latitude areas.

Singapore, zoom 18:
singapore z18

Manila, zoom 18:
manila z18

@mboeringa : At zoom 18, the residential roads in this PR are actually narrower than in the currently deployed osm-carto style, so I expect that the situation in the historic city centres in Europe will not become worse.

Style Width of residential at zoom 18
osm-carto (original road style) 15.5
gsoc (new road style) 12
this PR 14

Example: Siena at zoom 18, comparing osm-carto (original road style) and this PR:
siena z18

@imagico
Copy link
Collaborator

imagico commented Sep 22, 2015

Thanks - to me this is a clear improvement for z19, for z18 i have no clear preference, there are clearly situations where your change improve things but also some where it is worse.

@matthijsmelissen matthijsmelissen merged commit 172788f into gravitystorm:master Sep 27, 2015
@matthijsmelissen
Copy link
Collaborator

Thanks! To me it looks like a clear improvement.

@vholten vholten deleted the wider-roads-high-zoom branch September 28, 2015 15:45
@kocio-pl
Copy link
Collaborator

kocio-pl commented Nov 8, 2015

It looks like this code was too optimistic and I heard feedback from people finding blobs and glitches (like here or my example here).

I think we need more conservative approach: it's more acceptable if the road is a bit too narrow than a bit too wide. Ultimately we could use street area proposition to make it look exactly like it is in reality, so we don't have to overuse general tools.

I'm not sure however if we should entirely revert this change or it would be enough to just make the numbers smaller than currently.

@sommerluk
Copy link
Collaborator

it's more acceptable if the road is a bit too narrow than a bit too wide.

Well, almost all roads are rendered much wider than their real width on all zoom levels lower than 15 or 16. You propose doing exactly the opposite on z18 z19. That would volountary introduce an inconsistency …

@kocio-pl
Copy link
Collaborator

kocio-pl commented Nov 8, 2015

Exaggeration on lower zoom levels is (most probably) used to see the transportation routes on longer distances, but on higher zoom levels they are clearly visible and there's no more need to oversize them to see the route.

We currently use the width to make the difference between road priority/class just because we don't have enough colors available, and that is already risky, but hard to avoid. Further increasing it is unnecessary try to catch up with reality. Because road class are not tightly connected to their width, it will always be faulty, but on higher zoom levels it hurts the eyes more if we loose details because of it (consider this example with a building partially hidden by the road and a footway completely eclipsed, even on z19).

While I fully support the purpose of this PR and I hoped it will not lead to problems on highest zoom levels, the evidence shows that it works worse than expected.

@matthijsmelissen
Copy link
Collaborator

It looks like this code was too optimistic and I heard feedback from people finding blobs and glitches (like here or my example here).

+1, I'd be happy to accept a PR to decrease the road widths again.

@vholten
Copy link
Contributor Author

vholten commented Nov 8, 2015

I could submit a PR that partially undoes the change, say by 50%. How does that sound?

@imagico
Copy link
Collaborator

imagico commented Nov 8, 2015

Note the problem observed here is exactly why i suggested the variable width rendering in #1290. If you cap the rendering width using the tagged width value with a conservative road class based estimate as default - similar to as it is done in #1853 - this will avoid such problems and will seamlessly transit to a symbolic width rendering at the lower zooms.

@kocio-pl
Copy link
Collaborator

kocio-pl commented Nov 8, 2015

@vholten In case of such idea (guessing minimal universal value) the most important part is testing, not the idea. 😄 We could start with 50% of the increase and see the results.

@imagico I don't get the difference between your proposition and current take. I thought this PR was exactly about variable increasing road width ("I propose to slightly increase the width of roads at zoom 18, and more so at zoom 19.")?

@imagico
Copy link
Collaborator

imagico commented Nov 8, 2015

I thought this PR was exactly about variable increasing road width

No, with this PR the drawing width is still constant globally for each zoom level. #1290 suggests something fundamentally different.

@kocio-pl
Copy link
Collaborator

kocio-pl commented Nov 8, 2015

Unfortunately, I still don't get the difference, but in reality that's not important, because (as I said) the testing is king here. If your code works better than currently, I have nothing against it.

@kocio-pl
Copy link
Collaborator

@imagico Are you interested in creating PR according to your vision? @vholten can probably make "50%" PR with no big effort and the bonus would be we could compare both solutions, so I would be happy to test both of them.

@imagico
Copy link
Collaborator

imagico commented Nov 12, 2015

@imagico Are you interested in creating PR according to your vision?

It is not a vision, it is a suggestion. But the answer is no, i won't work on this at the moment. #1853 demonstrates how this can be done, it is probably not difficult to adapt this for the roads although it will certainly be quite a lot of work with all the special cases that occur in the roads layer.

If there is a change in roads rendering that uses polygon patterns to distinguish paved/unpaved (as previously suggested in #110 (comment)) that would probably simplify implementing this as well.

@matthijsmelissen
Copy link
Collaborator

Variable width road rendering introduces a lot of complexity that we should careful consider. It would likely also influence a lot of other things, like access rendering, label sizes, etc.

I would therefore propose to fix this problem initially with a simple solution (for example the 50% idea), so that we can include it in the next release, and consider possible variable width road rendering at a later moment.

@imagico
Copy link
Collaborator

imagico commented Nov 12, 2015

Variable width road rendering introduces a lot of complexity that we should careful consider. It would likely also influence a lot of other things, like access rendering, label sizes, etc.

Yes, note however the range of actual drawing widths of the roads will not significantly exceed what has been tried so far - except for the higher latitudes at z19 where they would likely be somewhat wider.

@vholten
Copy link
Contributor Author

vholten commented Nov 12, 2015

The "50%" PR is now ready for review (#1972).

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

Successfully merging this pull request may close these issues.

8 participants