Christoph<br>See my comments below.  There was a thread a while back about this.  I put forward some arguments about the fact that segments are not really needed.  <br><br>I'd really like someone to highlight why segments are actually necessary.  I believe that ways with an ordered list of nodes would do the same job.  I must be missing something but no one has yet been able to explain what I am missing.  I hoped that Steve would enlighten me, but he was away at the time of the earlier thread and didn't pick up on it.  Maybe he'll chip in now (Steve?).
<br><br>Etienne<br><br><br>On 8/1/06, <b class="gmail_sendername">Christoph Burghardt</b> <<a href="mailto:Christoph.Burghardt@uni-rostock.de">Christoph.Burghardt@uni-rostock.de</a>> wrote:<div><span class="gmail_quote">
</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">><br>> You might want to think about it the other way round.  Segments are the<br>
> redundant element.  All they provide is information about the direction<br>> between two nodes.  Ways can the thought of as multi-segmented paths.<br><br>Mmh - this approach has some significant disadvantages for me:
<br><br>1.) First i set the points, then i connect the segments, after that i<br>generate a way. How should i construct a way without these prior<br>informations?</blockquote><div><br>This is how you would do it (using a hypothetical editor that is a bit like JOSM):
<br>1. Select way drawing mode.<br>2. Position the cursor at the start of the way and click<br>3. Move the cursor to the next point on the way and click<br>4. Repeat until done.<br>5. Add tags to the way.<br><br>This is how it is currently done with segments (using JOSM):
<br>1. Select node drawing mode<br>2. Position the cursor at the start of the way and click<br>3. Move the cursor to the next point on the way and click<br>4. Repeat until done.<br>
5. Select segment drawing mode<br>6. Position the cursor at the first node and click<br>7. Drag the cursor to the next node and release<br>8. Repeat until done<br>9. Select way drawing mode<br>10. Position the cursor on the first segment and click
<br>11. Position the cursor on the next node and click<br>12. Repeat until done.<br>13. Add tags to the way.<br> <br></div>I think first way is simpler but you may be more comfortable doing it the second, more familiar way.
<br><br><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Until now a segment is the basis for a way, you can't remove it!<br>agree with you, ways are collection of segments. but you will always need
<br>the segments as a base.<br><br>2.) If one tag changes (i.e. class, highway, speedlimit) you have to<br>generate a second way. In the worst case you have as many ways as<br>underlying segments. You loose the only significant gain of the ways, the
<br>"fast-index" for group of  segments.</blockquote><div><br>Agreed, in the worst case you would.  But most of the time you wouldn't.  It would not be a good solution if in the worst case you had *more* ways than segments, but that is not the case.
<br> </div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">You will have all the difficulties mentioned earlier with map rendering,<br>navigation, ..
<br><br>> When two ways share a segment there is a problem.  The<br>direction has to  be the same for both ways.<br><br>In my view, i would ignore the underlying direction except the oneway<br>tag is set. You could omit the oneway tag and instead create a direction
<br>tag for each type of traffic.</blockquote><div><br>Perhaps you could provide an example.  I don't understand how your proposed solution would solve this problem.<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I agree with Wollschafs definition of a way: a method to easily add tags<br>to a lot of segments. For displaying, the API should combine the tags,<br>given the most basic unit (the point) override the segments with overrides
<br>a way.<br><br>A segment is a physical representation of the world, with tags like<br>roadclass, type, bridge, tunnel, footway, speedlimit. So i would apply all<br>tags of the physical world to a segment</blockquote><div>
<br>A segment simply defines the _direction_ between two  nodes.  Apart from tags it has two attributes; fromNode and toNode.  A Way with an _ordered_ list of nodes would do exactly the same thing.<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
A way is a logical group, like a bus-line, guided tour, think of somethink<br>like that.<br><br>To return to the question from the topic starter: Put the data in the<br>segments. After that, group the segments to a way and tag the way with the
<br>name attribute.</blockquote><div><br>DON'T put the data in the segments.  Tag the ways. </div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
><br>> It is likely, IMHO, that segments will be removed rather than ways.  I'm<br>> contemplating making the next major version of Osmarender ignore<br>> segments completely (including all segment level attributes).
<br>><br><br>I must admit, i don't care, because i don't use Osmarenderer.</blockquote><div><br><nitpick><br>  s/Osmarenderer/Osmarender/<br></nitpick> <br></div><br><br><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Christoph<br><br><br>_______________________________________________<br>talk mailing list<br><a href="mailto:talk@openstreetmap.org">talk@openstreetmap.org</a><br><a href="http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/talk">
http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/talk</a><br></blockquote></div><br>