f.zz.de
archives / 2023 /

12

Teileträger

Posted Fri 01 Dec 2023 11:17:39 PM CET Florian Lohoff in

Und noch eine alte Ape als Teiletr├Ąger.

Geometry antipattern: Background filling

Posted Mon 04 Dec 2023 02:24:20 PM CET Florian Lohoff in

Continuing the OpenstreetMap antipattern blogpost series here is another one.

This is a single landuse, spanning 12km. It follows streets in a tree like shape.

As for the obvious, this kind of landuses are prone to break. People tag highway tags on them, move them around by accident, and as they ALWAYS span more than your edit area nobody really is brave enough to do something with them. So this way/landuse stayed in the Database for 12 years, despite beeing semantically nonsense.

In this case we have a landuse=grass which is in itself a broken tagging as its not a use in itself. The Wiki article about landuse=grass tells you that most likely your tagging is wrong and you should use something else.

In this case the mappers intention was to not let any gap show up on the map between roads and landuses. We know about mappers glueing landuses to roads which is a semantic error in the OSM dataset as linestring object do not have a dimension as areas do have. This is another hack to eliminate the gaps between roads and adjacent landuses.

Nevertheless this is broken. The road itself is never a landuse=grass, its not even a landcover=grass, its tarmac or asphalt. Adjacent to the road there are the shoulders, which may carry grass from time to time, or a ditch which has grass on its banks.

Concerning the tracks, these carry a surface tag themselves so this landuse just trys to map for the renderer to get gaps in the background of the map closed.

So the antipattern is to not hack OSM data to do background filling. Not with glueing landuses to linestring objects, not by filling these with huge landuses as a last resort.

As long as we dont have a language/tags to fully describe road areas (which the shoulder and the ditch belong to) we should not hack around and fake objects to close gaps.