[Indoor] repeat_on and unrolling other tag values

Tobias Knerr osm at tobias-knerr.de
Mon May 27 18:18:26 UTC 2024


On 27.05.24 at 17:47, Volker Krause wrote:
> https://www.openstreetmap.org/way/1134007505 (example, repeats in that
> building).
> 
> (1) pure repeat_on vs. level + repeat_on use

This aspect of the mapping is correct.

The mental model we had when writing SIT was that you would map the 
feature at one (arbitrarily chosen) level the same way you normally 
would and then "copy" it to the other levels using repeat_on. I do 
acknowledge that omitting the level tag entirely and listing all the 
levels in repeat_on would work just as well – I don't remember that we 
consciously considered that alternative at the time.

> Might be worth clarifying, but from an implementor's perspective always just
> using the union seems safe I guess, or is there a semantic to a combined
> level/repeat_on use I'm missing here?

If the level value is just a single level, using the union is definitely 
correct.

However, there is a possible complication when repeat_on is combined 
with multiple levels or level ranges. I would consider it more natural 
to interpret something such as level=0-1 + repeat_on=2;4;6 to represent 
4 rooms, each of which is 2 levels high; rather than 5 rooms (which 
would be the result if you calculate the union).

Note that I would recommend against ever using something like that when 
mapping.

> (2) "unrolling" other tag values
> 
> In the above example ref is a list of room numbers that are meant to be
> assigned to the repeated rooms (I guess). As a human reader I kinda understand
> that, but that looks like something very ambiguous/error prone to implement.
> Is that even specified/allowed

No, it is not correct mapping, and I don't think supporting this 
approach would be desirable either. Conceptually, it is a lot simpler to 
have one way for each room.



More information about the indoor mailing list