How to map rooftop tennis courts?

There are some tennis courts in my area that are on the roof of a building, and I’m not sure how to map this. Previously the courts were traced but not the building, and when I added the building (traced around the courts) it covered up the courts in the slippy map.

Is it correct to map the building, and the courts as separate areas within it, and tag the courts as location=roof? Are there any tricks to ensuring the courts are visible when this is rendered?


Yes, that’s correct. :slight_smile:

While there is some software which already supports location=roof, the standard style on is notoriously poor at handling vertically stacked features in a meaningful way. This affects rooftop features, indoor features, and anything else along those lines. I don’t think there’s a way to convince it to show courts above buildings without resorting to incorrect tagging designed to trick this particular renderer, so I’d encourage you to just map it correctly and hope that the developers will catch up.


Hi Jakob, welcome to the forum. I was about to reply but @Tordanik just squeezed the same answer in between your question and my post … :grinning:


There certainly is 2 feature request issues over at Streets.GL to get roof gardens, railings, pools, being treated on-top when the location=roof is affixed to an object. Tested today how to get railing showing on a roof and the only way with a roof at 8 meters high was to tag height=9+min_height=8 which produced

i.e. tagged similar to the service building right next on the roof as building part.

OSM2World can already do it. :grinning:

No height necessary on the railing or the fictional tennis court (no worries, just added it locally in JOSM), just the location=roof tag.

Now I just need to get that damn web frontend shipped…

1 Like

There is also the layer-tag to describe which object is above or below.


Yup, that’s been used extensively (by me) to establish one building(part) is on top of the other, some I’ve done had to go up to layer 3. The wait is on the feature request/bug be coded in (to SG).