osmose-backend
osmose-backend copied to clipboard
Add check for unnecessary multipolygon relations
I've just fixed one of my old changesets (literally from my 2nd day of editing OSM) that I randomly remembered. Back then I was fiddling with iD since I had to split a landuse=grass
way into two, but somehow I managed to create a multipolygon instead. I guess Osmose can check for such scenarios. If it detects a painfully simple multipolygon relation, just like my landuse=grass
, with no other tags and a very simple geometry (no inner
members, only outer
), it might suggest splitting such unnecessary relation into its member ways. You can refer to changeset 149592903 to see what I mean.
There is already a report for 1-object multipolygon.
But I am not sure about report of union of simple polygon in multipolygon is a good move. I think such multipolygone can be used to "group" parts a common thing, like part of a named wood cut by a river.
I think such multipolygone can be used to "group" parts a common thing, like part of a named wood cut by a river.
I know, hence the requirement of having no other tags. No name
s, no ref
s, just landuse=grass
or any other tag (landuse=flowerbed
maybe?) that isn't usually used either for bigger areas or for naming things. Maybe there is some named flowerbed that deserves naming in OSM, but most of them probably aren't and it's better to split any multipolygon with such tags for the sake of simplicity.
I like the idea of flagging multipolygons with only 2 tags - type=multipolygon + landuse=*
(at least when limited to physical land uses, like farmland or forest, thus excluding things like landuse=residential, industrial, ...) and only outer
roles (which form more than 1 closed ring; multiple linear outers forming 1 ring are fine of course)
The risk is that e.g. a farmland was added as a multipolygon because it for example belongs to a single farmer, segregated by a road or so. However, these cases will very likely be very minimal. On the other hand, verification of such places would be very difficult, and that's holding me back from implementing it at the moment. Any thoughts on that?