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

Do not render highway areas in between the road layers #3281

Open
matthijsmelissen opened this issue Jun 29, 2018 · 3 comments
Open

Do not render highway areas in between the road layers #3281

matthijsmelissen opened this issue Jun 29, 2018 · 3 comments

Comments

@matthijsmelissen
Copy link
Collaborator

We current render highway areas in between the road layers: highway areas are rendered above the casing of roads, and below the fill of roads. This is visually very nice, as it allows us to connect the casing of areas nicely to the casing of roads.

However, it also causes technical difficulties. Rendering highway areas in between the road layers adds a lot of complexity. It makes other technical issues much harder to fix, such as #2046. In addition, it leads to cartographic problems, such as #688 and #529.

Rendering highway areas below the roads would make the style technically much simpler. In particular, it would allow us to merge the roads-fill and roads-casing layers. Also, it would be a first step towards merging all road layers in the project.mml file.

By the way, as far as I know we are the only style (with the exception of styles derived from this one) that takes this approach. Other styles either render highway areas below roads like I propose (such as the humanitarian style), or do not render highway areas at all (like the Wikimedia style).

I therefore think we should start render highway areas below the roads, like we render landuse.

CC @pnorman for his opinion.

@kocio-pl kocio-pl added the roads label Jun 29, 2018
@kocio-pl kocio-pl added this to the Bugs and improvements milestone Jun 29, 2018
@jeisenbe
Copy link
Collaborator

Also related to #529

@pnorman
Copy link
Collaborator

pnorman commented Aug 28, 2019

it would be a first step towards merging all road layers in the project.mml file.

With what I was looking at for merging the layers was to have the areas as part of the road layer. Keeping areas as their own layer before other road layers would be much simpler.

@matthijsmelissen
Copy link
Collaborator Author

I'm currently working on this.

matthijsmelissen pushed a commit to matthijsmelissen/openstreetmap-carto that referenced this issue Sep 6, 2019
This PR moves highway areas below all linear road types (resolves gravitystorm#3281).

In particular, this change has the following effects:

* Render highway areas below tunnels (resolves gravitystorm#529). This prevents the current
  situation where tunnels are invisible if there happens to be a highway area
  above them.
* Render highway areas below line/area barriers, ferry routes, tourism
  boundaries, cliffs, landuse-overlay, and turning circles. I think these
  changes are mainly neutral or positive.
* Render highway areas below line/area barriers. This is probably the most
  controversial aspect (but necessary for the other changes). See screenshot
  below.

* This PR is a necessary condition for merging the roads-casing and roads-fill
  layers (part of gravitystorm#2046), which would greatly simplify our code.
* This PR is a necessary condition for rendering buildings above highway area
  (gravitystorm#688).

* Promoting linear highways over areas makes life easier for other data
  consumers, that already tend to have poor support for highway areas. For
  example:
  * Transport and wikipedia do not render road areas
  * Humanitarian, bicycle, mapbox, streets, OSM bright renders linear roads on
  top of areas, like in this proposal
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants