pbf2json icon indicating copy to clipboard operation
pbf2json copied to clipboard

Centroid computation for relations in some cases broken

Open timonmasberg opened this issue 3 years ago • 2 comments

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 image

Actual centroid of Hamburg image

timonmasberg avatar Jul 20 '21 15:07 timonmasberg

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.

Screenshot_20210720-204618

missinglink avatar Jul 20 '21 18:07 missinglink

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

missinglink avatar Jul 21 '21 09:07 missinglink