pbf2json
pbf2json copied to clipboard
Centroid computation for relations in some cases broken
Describe the bug
Currently, centroids of relations are being calculated by detecting the largest area and calculating the centroid of it. This is broken for some relations, since members of relation-type outer
cannot always be seen as one shape. For Hamburg there are multiple way objects that are describing the border. Choosing the largest area therefore is not helpful here.
Steps to Reproduce
Dataset: https://download.geofabrik.de/europe/germany/hamburg.html
Expected behavior
Detecting relation members as closed or open ways. If closed => calculate centroid, if open => create polygon out of them and compute centroid. Also, administrative relations have a admin_centre
member, that could be used as a centroid.
Pastebin/Screenshots
Calculated centroid of Hamburg
Actual centroid of Hamburg
Thanks for the thoughtful bug report.
You're right, the polygon centroid calculations could be improved, would you be able to help out on this, I don't have a lot of time to work on it right now?
In that case specifically there is also a member node with the role admin_centre
, we should probably favour those over computing geo centroids where available.
This doesn't address the issue mentioned in the description, but it was an easy fix and would fix the Hamburg relation centroid and any other relation which has a node of role 'admin_centre': https://github.com/pelias/pbf2json/pull/98