Proposal:Curvature
Curvature  

Proposal status:  Abandoned (inactive) 
Proposed by:  Mikalaari 
Tagging:  type=curvature 
Applies to:  , , , 
Definition:  supposed to help keeping track of curvature information 
Statistics: 

Rendered as:  hidden 
Draft started:  20100410 
Note: This is currently a proposed relation.
It is not so easy to keep the straight ways straight. Adding new nodes often make a little bump to previously straight lines. Other mappers might not know which segments really represent straights. This relation is supposed to help keeping track of curvature information obtained from visual surveys or by other means.
It could be useful also to specify where the way has a sharp point instead of changing smoothly its direction. (See the issue 3 on Osmarender/BezierCurves.)
The editors could use the information to automatically keep points lined up when they form a straight line. The renderers can use it to decide when to draw an angle and when to smoothen the line. The relation can be applied to highways, waterways, barriers  any kind of ways really.
Tags
Key  Value  Discussion 

type  curvature  Defines that this is a Relation of the type 'curvature'. 
direction  forward / backward  The direction the information should be applied (in the case the way would be reversed). A possible alternative to the start/end roles (see below). 
Members
There is one role for indicating the way, or ways, whose curvature is being marked. It is not necessary to specify the curvature for the whole way; the endpoints must be marked with the start and end roles. This also defines in which direction the other nodes should be processed. (It would be difficult to handle the reversing otherwise.) If one wants to describe the curvature of several pieces of the way, each should be indicated by these roles.
The curvature information is associated to the nodes of the way instead of the segments, specifically to the nodes where the curvature changes  when a curve becomes a straight line or vice versa, or the way has a nonsmooth change of direction.
Here "straight" means a portion of a great circle.
Two roles (straight and curve) are used to tell whether the following segments (towards the end node) are known to form a straight line or a curve. This value remains the same for all the subsequent nodes on the way until a node with a different role is encountered.
The transitions are smooth by default. If adjacent segments really meet at an angle, the cusp role should be assigned the node between them. The segments can represent (a part of) a straight line or a curve or any combination of them.
Examples
TODO
See also
 Relations/Proposed/Geometry (similar goal)