Roads – how to represent evolution?

We’re starting to make some progress in restoring the rendering of roadways and railways that have been converted to multilinestring relations. The relations are in the tiles, but some challenges remain in getting them into the stylesheet, especially if we intend to support route relations or street relations simultaneously.

While this is cause for optimism, I remain pessimistic about multilinestring relations for navigable features. Beyond rendering, we’d urgently need to extend all the editors to support multilinestring relations as a basic geometry type and somehow make Nominatim aware of these relations too. This is outside the area of expertise of just about everyone on the development team, so we’ll need the community to help bring in people who can contribute this functionality to our forks. Realistically, if we adopt this relation type, we won’t be able to introduce routing for the foreseeable future. I simply don’t think it’ll be feasible based on how the major routing engines are architected. But I’d be happy to be proven wrong.

There are some practical data modeling consequences too. It’s really nice to be able to represent a road as a single object, but multilinestring relations actually prevent us from doing so. After all, a road that has varying speed limits, lane counts, surfacing, etc. over its length will need a series of multilinestrings. This is the problem that route relations are supposed to solve, and route relations don’t come with many of the downsides I just mentioned.