[Talk-de] Vollkommen sinnlose, zerstörerrische Richtungsfunktion in OSM?

Tirkon tirkon33 at yahoo.de
Do Jul 22 04:08:12 UTC 2010


Peter Körner <osm-lists at mazdermind.de> wrote:

>> Wie ich schon schrieb: Linienbündel könnten auch in diesem Fall
>> helfen

Man beachte den Konjunktiv "könnten".

>Nur mal aus Interesse (bitte nicht als Kritik missverstehen):
>würdest du auch solche Feldwege mit zwei Linien abbilden? Fahren kann 
>man ja in beiden Richtungen drauf..
>
>Wie steht es mit kleinen Landstraßen, die keine Mittellinie haben, und 
>solchen, deren Mittellinie schon abgefahren ist?
>
>Es ist hier schwer die Grenze zu ziehen, denke ich.

Man beachte den Konjunktiv "könnten". Ich bin mir bewusst, dass
Linienbündel nur in vielen, aber nicht in allen Fällen helfen und
daher auch keine Allheilmittel sind, sondern nur eine Milderung des
Problems darstellen. Zudem können sie die Sache durchsichtiger machen.
Denn ein Tag auf der richtungsgebundenen Fahrspur ist suggestiver, als
forward und backward. Es bleibt aber trotz Linienbündel nach einer
Lösung zu suchen. Die komplexen Einzelheiten der Linienbündel bringen
unser Kernproblem hier nicht weiter.

>Angenehmer wäre ein definiertes Taggingschema für Richtungsabhängige 
>Tags, z.B. durch vier Namensräume in den Tags: right, left, forward, 
>backward. Die Tags könnten dann so aussehen:
>
>forward:maxspeed=30
>right:parking=yes
>
>es ist dann klar, dass bei einer Richtungsänderung aus allem was mit 
>forward: getaggt ist ein backward werden muss. Leider ist 
>"forward:maxspeed" weiter von "maxspeed" entfernt als 
>"maxspeed:forward", weshalb  das letztere häufige verwendet wurde.

Alles soweit klar. Nur hat das eben den Nachteil, dass dies Alles mit
der Richtung des Ways steht und fällt mit allen Problemen, die ich
schon im Ursprungsposting beschrieben habe. Darum wäre es sinnvoll,
Folgendes zu tun: 

>Generell wäre es möglich die definition von right, left, forward und 
>backward von der Wegrichtung zu lösen:
>
>Wenn ein Tag "direction" vorhanden ist, wird der statt der eigentlichen 
>Weg-Richtung verwendet. Was "direction" jetzt genau enthält bleibt zu 
>Diskutieren: 

Genau, jedes Tag und jede Routen-Relation müsste seine eigene
"Richtung" haben. Aber genau hier liegt der Hund begraben. Wie will
man diese Richtung festlegen und in der Datenbank unterbringen?

>Eine Himmelsrichtung

Himmelsrichtung habe ich auch drüber nachgedacht. Aber dann muss man
eine Grenze setzen, wo die Richtung umkippt. Wenn ein Way nahe an
dieser Grenze verläuft, dann kann die Richtung durch Ziehen von Knoten
im Way umkippen.

>eine Node-Nummer 

Das ist es! :-)

Bisher kannte ich von XML nur den Namen und habe gerade erst etwas
darüber gelesen. 

Ich habe mit JOSM einen Way mit drei Nodes erstellt:

<?xml version='1.0' encoding='UTF-8'?>
<osm version='0.6' generator='JOSM'>
  <node id='-4' visible='true' lat='-1.3351572879110518'
lon='-1.466542772416855' />
  <node id='-2' visible='true' lat='-0.022631832319151942'
lon='-0.21726559591360814' />
  <node id='-1' visible='true' lat='0.31231774745922347'
lon='-0.8962205831436337' />
  <way id='-3' action='modify' visible='true'>
    <nd ref='-1' />
    <nd ref='-2' />
    <nd ref='-4' />
    <tag k='maxspeed:backward' v='70' />
    <tag k='maxspeed:forward' v='50' />
  </way>
</osm>

und dann die Richtung umgedreht:

<?xml version='1.0' encoding='UTF-8'?>
<osm version='0.6' generator='JOSM'>
  <node id='-4' visible='true' lat='-1.3351572879110518'
lon='-1.466542772416855' />
  <node id='-2' visible='true' lat='-0.022631832319151942'
lon='-0.21726559591360814' />
  <node id='-1' visible='true' lat='0.31231774745922347'
lon='-0.8962205831436337' />
  <way id='-3' action='modify' visible='true'>
    <nd ref='-4' />
    <nd ref='-2' />
    <nd ref='-1' />
    <tag k='maxspeed:backward' v='70' />
    <tag k='maxspeed:forward' v='50' />
  </way>
</osm>

Das OSM Format gibt offenbar die Richtung eines Ways durch die Abfolge
der Node-Nummern an. Denn das ist das Einzige, was sich bei einer
Umkehr des Weges ändert. Jetzt müsste man statt "backward" und
"forward" ebenfalls die Richtung durch die Abfolge der Node Nummern
angeben. Ich will das Ganze mal mit "Richtung eines Tags" titulieren.
Jetzt kann man die Richtung des Weges umdrehen, wie man lustig ist,
ohne die Richtung des Tags zu ändern.

Wie gehabt: Ich habe gerade das erste Mal etwas über XML gelesen. Was
jetzt kommt, ist also mit Sicherheit nicht richtig. Aber entfernt
könnte das Ganze dann so aussehen:  

<?xml version='1.0' encoding='UTF-8'?>
<osm version='0.6' generator='JOSM'>
  <node id='-4' visible='true' lat='-1.3351572879110518'
lon='-1.466542772416855' />
  <node id='-2' visible='true' lat='-0.022631832319151942'
lon='-0.21726559591360814' />
  <node id='-1' visible='true' lat='0.31231774745922347'
lon='-0.8962205831436337' />
  <way id='-3' action='modify' visible='true'>
    <nd ref='-1' />
    <nd ref='-2' />
    <nd ref='-4' />
    <tag k='maxspeed' v='70' />
        <nd ref='-1' />
        <nd ref='-2' />
        <nd ref='-4' />
    <tag k='maxspeed' v='50' />
        <nd ref='-4' />
        <nd ref='-2' />
        <nd ref='-1' />
  </way>
</osm>

Ausgesagt werden soll, dass sich die jeweilige Maxspeed auf die
jeweilige Richtung bezieht. Möglicherweise lässt sich das auch soweit
eindampfen, dass man nur den ersten und den letzten Node angibt. Es
könnte aber Gründe geben, warum man dies beim Way nicht getan hat.
Dieselben Gründe könnten auch dagegen sprechen, beim Tag ebenso zu
verfahren. Ich kann das mit meinem derzeitigen Kenntnisstand nicht
beurteilen.

Vielleicht kann jemand mit *.osm bzw XML-Kanntnissen das Ganze noch in
eine korrekte Form bringen.

Jetzt muss man JOSM soweit bringen, dass er die Richtung eines Tags
anzeigen und umdrehen kann sowie den entsprechenden Output generiert.
Überdies müsste das Ganze auch auf Routen-Relationen ausgeweitet
werden, indem man auch denen eine Richtung gibt. Es gäbe da vielleicht
die Möglichkeit, die Richtung durch die Abfolge der eingeschlossenen
Ways zu spezifizieren. Aber im Prinzip müsste es funktionieren.  

Damit wäre eine Lösung gefunden, die Frederik weiter oben im Thread
als "weniger fragil" umschrieben hat und gleichzeitig seine Forderung
erfüllt, den User nicht in ein enges Korsett zu schrauben. 

>einen Ortsnamen 

>direction=Mainz
>maxspeed:forward=120
>maxspeed:backward=100

Aber wie willst Du die direction=Mainz festlegen, ohne Dich wieder auf
die Richtung des Weges zu beziehen?





Mehr Informationen über die Mailingliste Talk-de