Recently, I’ve been using a laser distance meter to measure the dimensions of indoor features like rooms and corridors, then adding them to OSM.
Currently, it’s unnecessarily tedious to add data this way - neither JOSM nor Vespucci have an easy way to say “I want a line or polygon with these dimensions”. And once you add data matching the dimensions, there’s no way to tell other mappers that a feature should have certain dimensions. I’ve been adding them as notes, but of course a mapper may ignore them. Nor are they machine-readable.
This reminded me of an idea I had documented earlier. Constraints - OpenStreetMap Wiki What are everyone’s thoughts about it?
A simpler subset
A simpler way to solve the immediate problem for indoor elements could be - instead of using closed ways, we construct a polygon by combining two-node-ways into a relation. These ways may be given a length=*
tag; the other tags go into the relation.
The editing software should ensure that the ways remain at their given lengths at all times. If I perform a squaring operation after selecting all the ways, the squaring should be performed while respecting the length constraints of the ways. (If such an operation cannot be performed without breaking the length constraints, the operation should not be performed and the user should be informed.) Thus, the angle constraints described in the link become unnecessary for the most common case of 90° angles.
The ways don’t need to be two-node-ways (that’s just the most likely common case for indoor mapping). The length=*
key could be used as a constraint for any kind of way in general, but I don’t know what uses that might have.
Conclusion
In either case, constraints will make addition and maintenance of data easier, and prevent errors before they are made.
What does everyone think of it? Are there better ways to solve these issues?
(In your responses, please specify whether you refer to the original constraints idea on the wiki page, or to the simpler subset described here. Also, alternative suggestions which alleviate the problems are preferable to just letting the status quo continue.)