Openstreetmap-carto: Oneway arrows prevent display of long street names

Created on 10 Dec 2015  ·  16Comments  ·  Source: gravitystorm/openstreetmap-carto

Long street names (by the looks of it, over 20 characters long) are not displayed on oneway streets. This is especially troublesome in bilingual areas where the name in both languages is used.

See for example http://www.openstreetmap.org/way/22575474:
clipboard image 13

roads

Most helpful comment

I think the proper solution is to render arrows later. In my personal fork I shortened the distance between arrows (so they show earlier, important to me for driving around in unknown places) and in one way streets I get no names at all:

one_way_too_many_arrows

I will try to tackle this problem this week, make a PR.

All 16 comments

I can confirm this issue as well.

Are there any places where it occurs i monolingual areas as well?

Ok, it looks like the limit is a bit longer than 20 characters:
clipboard image 15

Here is one example where the label is not shown on zoom 19, though it is on lower zooms: http://www.openstreetmap.org/way/7371850
clipboard image 17

In my opinion it's one of the most irritating bugs, making the map useless in some areas. Street names belong to the most important names, they are essential for navigation and orientation.
Another example would be this bridge in Warsaw: the names of the bridge (except man_made=bridge) and some adjacent roads are not visible on any zoom level:
most
Mostly, the problem occurs on roads with separated directions like motorways - these are the most important roads and always one-way.
It should be quite simple to correct - either by lowering the arrows' priority or by enlarging the space between them.

I think the proper solution is to render arrows later. In my personal fork I shortened the distance between arrows (so they show earlier, important to me for driving around in unknown places) and in one way streets I get no names at all:

one_way_too_many_arrows

I will try to tackle this problem this week, make a PR.

The question is, what is more important, the arrows or the names?

Would it be possible to avoid this problem somehow by making the arrows part of the name in the rendering?

sent from a phone

Il giorno 29 ago 2016, alle ore 18:46, Marcos Dione [email protected] ha scritto:

In fact i think the proper solution is to render arrows later.

I would render them before, and render the name over them (because of the halo the names will still be visible)

It should be quite simple to correct - either by lowering the arrows' priority or by enlarging the space between them.

@kdudzik Pull Requests are quite welcome!

@nebulon42 in a few weeks I'll try to configure the environment and start to participate, but at the moment I can only count on others (not much time). Thanks though for the encouragement :)

I think the arrows are most important, but there are many examples where names could easily have been displayed where instead several arrows are displayed on one street.

If it's a short street that doesn't have space for both an arrow and the name, then only an arrow should be shown.

If it's a long street where there is enough space for at least one arrow in addition to the name, then both should be shown.

Currently you can have very long one-way streets that don't display a name because there are too many arrows.

Well, België/Belgique/Belgien has a terrible problem, not only very long street names, but also in 2/3 languages.

In any case, I just finished moving one way arrow rendering from the tunnels, roads-fill and bridges layers to the roads-text-name layer, and it looks slightly better. It even _mostly_ fits with what @pbb72 wants, because if the name doesn't fit, then only arrows are rendered. Of course, there is still a _probability_ that only the name will fit.

The question is: is this move correct? Was there any particular reason to put one way arrow rendering in those layers? I'll clean up and post a PR in the afternoon.

PR sent, now the classical before/after images :)

z15 - included to show some pre-existing rendering diffreneces -- it seems that my fonts are different (this is a Debian Sid setup), and I have a slightly outdated database (not enough free space to keep an updatable db, sorry). Also, no bicycle or horse info.

one_way_too_many_arrows-orig-z15 |
one_way_too_many_arrows-new-z15

z16 - No bicycle info means no one way arrows in the cycleways to the sides of the tertiary at center right. At least one new name “Rue Saint-Vincent/Sint Vincentiusstraat".

one_way_too_many_arrows-orig-z16 |
one_way_too_many_arrows-new-z16

z17 - Two more: “Rustplaatslaan” and “Van Cutsem”.

one_way_too_many_arrows-orig-z17 |
one_way_too_many_arrows-new-z17

z18 - Last one. Even “Dekoster" renders names and arrows.

one_way_too_many_arrows-orig-z18 |
one_way_too_many_arrows-new-z18

Looks great to me! :)

As a comparison with my previous sshot:

one_way_too_many_arrows vs
one_way_too_many_arrows-new

Just for reference, our arrows used to be made with dasharrays until #1840. Conflicts with names wasn't brought up at the time.

2016-09-02 10:32 GMT+02:00 Paul Norman [email protected]:

Just for reference, our arrows used to be made with dasharrays until #1840
https://github.com/gravitystorm/openstreetmap-carto/pull/1840.
Conflicts with names wasn't brought up at the time.

+1, because overlap was possible. The overlap should be reenabled with the
new way of drawing arrows, rather than trying to tweak the arrow distances
or similar "tricks" to slightly improve a broken concept.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

kocio-pl picture kocio-pl  ·  4Comments

jengelh picture jengelh  ·  4Comments

FTno picture FTno  ·  4Comments

wielandb picture wielandb  ·  3Comments

Phyks picture Phyks  ·  3Comments