Thanks Sam for bringing up this incredibly important issue, and for doing it in such a clear way with pictures, examples, and an invitation to an open discussion. This is great!
I think we all agree that the ideal would be to map a polygon representing where the outer wall of the building touches the ground. However, working from the imagery that OpenStreetMap contributors can usually access, this is impractical. It’s difficult to imagine how we could accurately estimate the overhang distance between building, roofs and outer walls anytime in the near future.
An idea that occurs to me is to simply embrace the fact that we can effectively digitize roof area, but tag it explicitly as such. In cases where we have 3D data, ground-based data, or some other way to accurately map the “true” footprint (where the outer wall touches the ground) we could tag it as such, and where we cannot, we can explicitly label the footprint is representing the roof area.
This could help resolve an issue that Sam has pointed out: overlapping building footprints are physically impossible, if they represent out of wall perimeter. But overlapping roof footprints are actually quite common, as in the photo he’s shown. This could help with validation; when you have an overlap, but both polygons are tagged as roof area rather than outer wall perimeter, it doesn’t necessarily represent a digitization error.
Keeping in mind that roof area is still useful; even though the outer wall footprint would be a better representation of the building, also, having a representation of the roof area is useful for assessing things like solar energy potential, water, runoff, etc. ultimately, in some cases, we might have to concentric polygons, one representing the roof area, and one representing the outer wall footprint (and someday in the future, hopefully we’ll have actual 3D models of buildings)!
Looking forward to hearing others’ thoughts and ideas on this!