Symmetrical Building Footprints


first I have a question. is the Adalbero Church in Würzburg, Germany. In real world it is AFAIK exactly symmetrical having one symmetryline (I call it order one invertable). That simplification is obviously rectangular and in context of the String Matching symmetry detection method symmetrical (the angles are symmetrical but the edge lengths aren’t). So my question is how has that simplification been obtained?

Now about me. I am developing symmetrical building footprint simplification for more than four years now. I rely on three steps. First a multistep symmetry detection procedure, then symmetry line adjustment and finally (a combination of) different simplification methods. Currently I have only one simplification method that aligns the edges parallel and orthogonal to the symmetry lines and simplifies with respect to a minimum edge length parameter. See images below.

Here is a shape from the open San Francisco Building Footprint Dataset. The adjusted order one invertable symmetry is indicated.

Here the shape got simplified and its edges are aligned parallel and orthogonal to the symmetry line.

This is the Cook County Jail from the open Chicago Building Footprint Dataset. Its order one invertable is indicated.

Here its order four invertable got simplified aligning the edges parallel and orthogonal to its symmetry lines.

If there is interest, I would grant OpenStreetMap a free licence to use the tool and publish the simplifications on OpenStreetMap.

Wow, this looks really cool! I think this would make a great addition as a plugin (or builtin function) for JOSM.
As a standalone tool, I fear, it wouldn’t be used too much.

I don’t understand your question. If you mean to ask how the church’s shape was created, I would say the user just traced the building from satellite imagery and then pressed “Q” in JOSM (=orthogonalize).

Yes ,this answers my question.

The J in JOSM, is it for Java or Java Script?

Can you provide me with a link?


I see. It would be too much to refactor so much Java Code. But I consider to make a free OSM edition. Is there an API?