2011/8/10 Tobias Knerr <span dir="ltr"><<a href="mailto:osm@tobias-knerr.de">osm@tobias-knerr.de</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">

Simone Saviolo wrote:<br>
> Ok, but there are use cases where simple things don't suffice. In the<br>
> case at hand, for example, using something like direction=forward<br>
> doesn't work in all the use cases. And using direction=<angle in<br>
> degrees> is in no way simpler (can you figure a newcomer trying to work<br>
> out the angle? What's the reference? Should I use degrees, decimal<br>
> degrees, radians? Should I use minutes and seconds for the fractional<br>
> part (the horror)? Should I be content with something like direction=225<br>
> or be more precise and use direction=221,32? You know what, nevermind,<br>
> I'll use Streetview instead).<br>
<br>
</div>Now, *this* is something that can be abstracted away by tools much more<br>
easily than relations. The unit issue has already been neatly solved by<br>
editors such as Potlatch 2, and I can imagine how I would design a nice<br>
dialog for editing tags with angular values. I have no idea how to even<br>
approach a similarly user-friendly editing tool for direction relations.<br></blockquote><div><br></div><div>Look at the turnrestrictions plugin for JOSM. When you use it, you can even have no idea that there's a relation involved. </div>

<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
A major advantage of tags compared with relations is that they don't<br>
affect other objects, which has all sorts of benefits (object history<br>
easier to understand, no unexpected side effects when I move a node of<br>
the road, ...). </blockquote><div><br></div><div>Yes and no. Relations exist for the exact purpose of binding objects that are supposed to be bound. If I map a speed camera and use the relation, I'll set a node as "from" and another one as "to"; if then I get better data and I move those two nodes, the relation is still valid and it is automatically updated. On the other hand, if I had used something like, for example (it's not a real tag, just an example), distance_from_road_margin=2 to specify where the speed camera is, I would have to move the nodes accordingly, or to edit the value of the tag, and if I forget one of the two, or if I do it incorrectly, I have invalid data. </div>

<div><br></div><div>As to object history, relations are "above" objects. A node that represents an intersection is there because it is an intersection; it may be moved or tags may be applied, the road may change its classification, whatever, and all of these changes should be tracked in the history of the node. When that node becomes the member of a turn restriction relation, what happens to the relation should not be recorded in the history of the node. If the node is changed and the turn restriction still applies, the history of the node will have all the relevant information, and the history of the relation will have all the relevant information (relevant to the relation, of course, i.e. no change). </div>

<div><br></div><div>Regards,</div><div><br></div><div>Simone</div>