osm-americana / openstreetmap-americana

A quintessentially American map style
https://americanamap.org
Creative Commons Zero v1.0 Universal
182 stars 59 forks source link

Odd-numbered admin-level boundaries are missing #481

Open 1ec5 opened 2 years ago

1ec5 commented 2 years ago

Boundary lines are only visible for countries (admin_level=2), states (4), counties (6), and municipalities (8), but not for odd values in between. Any boundary shared by an odd-numbered boundary relation is missing. Odd-numbered boundaries are used for various purposes, such as for townships in Ohio and for cities and boroughs in New York State.

Examples

For example, the tripoint of two townships (7) and one city (8) in Ohio:

Columbia, Symmes, Indian Hill

A boundary between two cities (8) that looks like an island because it’s only connected to boundaries between cities and townships (7):

Cincinnati, North College Hill

What should be the wiggly boundary of New York City (5), the boundary between Bronx and Westchester counties (6), and the boundary between The Bronx and Yonkers (7):

Bronx, Yonkers

Diagnosis

Currently, we have four boundary line layers and three boundary casing layers that each match a single admin_level value exactly. This leaves the intermediate values uncovered.

https://github.com/ZeLonewolf/openstreetmap-americana/blob/a8597df2616d9293d29b17d53eaafb4186f63ed2/src/layer/boundary.js#L44

Implementation notes

An intermediate value should have a dash pattern that’s similar to both adjacent values. This can make it difficult to visually discern the adjacent values. A common technique is to alternate dash patterns. Some use shorter dashes or dots among longer dashes to communicate the admin level quite literally.

Universal Cincinnati Seeger Cincinnati 1991 Rand McNally Manhattan 1991 Benchmark Arizona

We could add more layers for the intermediate values, but there’s so much commonality between these layers that we should instead consolidate them into one line layer and one casing layer, using expressions to control the dash pattern or casing size based on the admin_level property.

quincylvania commented 1 year ago

Overlap with #40

ZeLonewolf commented 1 year ago

Relevant to this, we recently merged openmaptiles/openmaptiles-tools#421, which adds a number of missing boundaries from low-zoom (for example Wales/England/Scotland boundaries at certain zooms). We'll need to wait for a new release of openmaptiles-tools before we can update openmaptiles before we can style those.

wolfy1339 commented 8 months ago

This is affecting regional boundaries in Quebec (admin_level=5),

Example: https://www.openstreetmap.org/way/564160213 is part of a regional boundary (admin_level=5) also shared by county (admin_level=6) and municipal (admin_level=8) boundaries

ZeLonewolf commented 8 months ago

For clarification, the regional boundary in question cited above is a member of: https://www.openstreetmap.org/relation/8138409