ZeLonewolf / openstreetmap-americana

A quintessentially American map style
https://zelonewolf.github.io/openstreetmap-americana
Creative Commons Zero v1.0 Universal
175 stars 56 forks source link

Render waterways and their labels #58

Closed jleedev closed 2 years ago

jleedev commented 2 years ago

Motivation: Should be obvious, but of note — the river areas as simplified by openmaptiles have large gaps at low zoom levels and the linear rivers are needed to make this look right.

Desired qualities for the waterways (brainstorm harvested from slack):

ZeLonewolf commented 2 years ago

Below are a collection of samples of water renderings in paper maps in my collection. Some things I note as an overall analysis:

On thing that surprised me is that there is a trend of labeling rivers along the edge of the river area. I think that is probably not technically achievable with our technology stack, but it is interesting.

There seems to be a trend of labeling large bodies of water in all-caps and lesser bodies of water in title case, but I'm not sure there's a good data-driven way to accomplish this.

I also note (see Philadelphia example), that when the features around a river get crowded, the cartographer simply moves the label to a free spot in the river. In the example, the words "Delaware" and "River" are, comically, dozens of miles apart. We will never see a paper map where a river label and a road conflict, because the cartographer can simply adjust the label to a position where they don't conflict. So either we need to figure out how to make use of MapLibre's declutter capability or else decide which labels win on the over/under and live with the overlap.

Both Rand McNally, and the more recent AAA maps, all use title-cased, italic blue font for water labels and boundaries, so my vote is to use those elements of style. They disagree on whether water labels should be in a serif or sans-serif font. I personally think serif looks a little nicer, but I could be convinced either way, and maybe we could throw that distinction to a slack vote to see which one comes out nicer in practice. Of course, the limited availability of fonts may force our hand.

The width and curviness stuff is way over my head, and I'm happy to defer to those that know more about it.

2021-11-27 18 55 27 2021-11-27 18 56 22 2021-11-27 18 54 53 2021-11-27 18 51 59 2021-11-27 18 54 46 2021-11-27 18 52 46 2021-11-27 18 53 42

2021-11-27 18 47 56

2021-11-27 18 46 39 2021-11-27 18 44 07 2021-11-27 18 44 43 2021-11-27 18 45 05 2021-11-27 18 46 01

1ec5 commented 2 years ago

In the example, the words "Delaware" and "River" are, comically, dozens of miles apart.

The generous spacing may not be purely for collision avoidance. The same effect is pervasive in USGS topographic maps: words are strategically placed so that there’s never any ambiguity as to which fork is which, but yet there’s no need to continuously label the stream and introduce more opportunities for collisions. I suspect some maps have employed a similar approach to road labeling.

For example, whether you’re following O’Bannon Creek as an orienteer or armchair mapper, you know you’ve gone down the wrong fork if you come across “Indiancamp” where you expected “Creek”. Note how the unnamed forks don’t cause the rest of the creek’s name to be labeled.

obannon-indiancamp

The downside to this approach is that it requires a bit more browsing to discover the full name of a stream. It may not be as good a tradeoff on an interactive map where additional labels can come in and out as the user zooms.