x

Re: Integration der Kurvendarstellung in OSM


Geschrieben von aighes (Gast) am 24. Mai 2012 17:04:44: [flux]

Als Antwort auf: Integration der Kurvendarstellung in OSM geschrieben von marek kleciak (Gast) am 23. Mai 2012 10:25:

Für variable Kurven (Splines) bräuchte man mindestens zwei Punkte die Start und Ende definieren. Für jeden dieser Punkte bräuchte man noch zwei Hilfspunkte, die die Form des Splines beeinflussen.

Hier mal ein kleines Beispielbild mit 3 Punkten. Am Punkt 2 sieht man die beiden Hilfspunkte 2L und 2R.

Im Datenmodell kann man das bspw. wie folgt umsetzen:

<?xml␣version='1.0'␣encoding='UTF-8'?>
<osm␣version='0.6'>
<node␣id='1'␣lat='...'␣lon='...'␣/>
<node␣id='2'␣lat='...'␣lon='...'␣/>
<node␣id='3'␣lat='...'␣lon='...'␣/>
<curve␣id='1'␣>
<nd␣ref='1'␣L_lat='...'␣L_lon='...'␣R_lat='...'␣R_lon='...'␣/>␣//Startpunkt
<nd␣ref='2'␣L_lat='...'␣L_lon='...'␣R_lat='...'␣R_lon='...'␣/>␣//Zwischenpunkt
<nd␣ref='3'␣L_lat='...'␣L_lon='...'␣R_lat='...'␣R_lon='...'␣/>␣//Endpunkt
</curve>
</osm>

Als Nachteil sehe ich hier erstmal, dass es mehr Speicher benötigt, als ein Kreisbogen (ist natürlich kein wirkliches Argument). Dafür ist man natürlich deutlich flexibler was die Form angeht. Außerdem ist man flexibler was die Punkteanzahl angeht, was nicht gerade unerheblich ist, wenn man an Straßen und dessen Einmündungen denkt.

Bei Änderungen (Verschieben) an einem Node wirken sich die Änderungen auch auf die Hilfspunkte (2L, 2R) aus, sodass es sinnvoll wäre, dessen Koordinaten relativ zu den Koordinaten des Bezugspunktes (2) zu speichern. Dann müssen bei einem Verschieben keine Änderungen an der curve vorgenommen werden, sondern es ist ausreichend, die Koordinaten des Nodes zu ändern.