Re: Integration der Kurvendarstellung in OSM
Geschrieben von aighes (Gast) am 24. Mai 2012 14:33:29: [flux]
Als Antwort auf:
Integration der Kurvendarstellung in OSM
geschrieben von
marek kleciak
(Gast)
am
23. Mai 2012 10:25:
So...ich hab mal ein wenig den Gedanken freien Lauf gelassen.
Wenn man davon ausgeht, dass Kurve=Kreisbogen, ist es mit dem Datentyp curve recht simpel.
<?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='3'␣/>␣//Startpunkt <nd␣ref='2'␣/>␣//Hilfspunkt <nd␣ref='1'␣/>␣//Endpunkt </curve> </osm>
Also egtl. ein wie ein Way nur mit genau 3 Nodes. Als kleine Demo hab ich es mal für einen Straßenabschnitt fix umgesetzt (trunk auf Mapnik-Primary, damit man es besser sieht):
Damit josm mit den Daten klar kommt, hab ich den Datentyp bei way belassen, zum Nachvollziehen aber curve=yes getaggt und den Hilfspunkt mit curve=middle getaggt. Beides ist mit dem Datentyp curve (siehe oben) nicht nötig.
<?xml␣version='1.0'␣encoding='UTF-8'?> <osm␣version='0.6'␣upload='true'␣generator='JOSM'> <node␣id='-58'␣action='modify'␣visible='true'␣lat='50.97624267299224'␣lon='11.284868318566938'␣/> <node␣id='-56'␣action='modify'␣visible='true'␣lat='50.977472509120204'␣lon='11.28845722585104'␣/> <node␣id='-54'␣action='modify'␣visible='true'␣lat='50.98111183334305'␣lon='11.291720590660256'␣/> <node␣id='-52'␣action='modify'␣visible='true'␣lat='50.98141676376676'␣lon='11.291657070177354'␣/> <node␣id='-50'␣action='modify'␣visible='true'␣lat='50.98317132450159'␣lon='11.292062013255869'␣/> <node␣id='-48'␣action='modify'␣visible='true'␣lat='50.98435599040213'␣lon='11.292284334946036'␣/> <node␣id='-46'␣action='modify'␣visible='true'␣lat='50.98523072430183'␣lon='11.292284334946036'␣/> <node␣id='-44'␣action='modify'␣visible='true'␣lat='50.987679891534434'␣lon='11.291180666555572'␣/> <node␣id='-42'␣action='modify'␣visible='true'␣lat='50.989524179113495'␣lon='11.289394152973882'␣/> <node␣id='-40'␣action='modify'␣visible='true'␣lat='50.99463182341778'␣lon='11.291188606615933'␣/> <node␣id='-38'␣action='modify'␣visible='true'␣lat='50.99615101423253'␣lon='11.294801334081122'␣/> <node␣id='-36'␣action='modify'␣visible='true'␣lat='50.998042099052995'␣lon='11.29783956551705'␣/> <node␣id='-34'␣action='modify'␣visible='true'␣lat='50.99984412350129'␣lon='11.30159003182825'␣/> <node␣id='-32'␣action='modify'␣visible='true'␣lat='51.00016918712704'␣lon='11.30342034921964'␣/> <node␣id='-30'␣action='modify'␣visible='true'␣lat='51.000416516620994'␣lon='11.304262519798504'␣/> <node␣id='-28'␣action='modify'␣visible='true'␣lat='51.00187926695615'␣lon='11.309214482802213'␣/> <node␣id='-26'␣action='modify'␣visible='true'␣lat='51.00249403231801'␣lon='11.31265053876397'␣/> <node␣id='-24'␣action='modify'␣visible='true'␣lat='51.00130689188247'␣lon='11.30663182636037'> <tag␣k='curve'␣v='middle'␣/> </node> <node␣id='-22'␣action='modify'␣visible='true'␣lat='51.00026433469981'␣lon='11.303872231459675'> <tag␣k='curve'␣v='middle'␣/> </node> <node␣id='-20'␣action='modify'␣visible='true'␣lat='50.999219988940716'␣lon='11.29937815729419'> <tag␣k='curve'␣v='middle'␣/> </node> <node␣id='-18'␣action='modify'␣visible='true'␣lat='50.99705127241943'␣lon='11.296710297012199'> <tag␣k='curve'␣v='middle'␣/> </node> <node␣id='-16'␣action='modify'␣visible='true'␣lat='50.992198776887136'␣lon='11.288524094777891'> <tag␣k='curve'␣v='middle'␣/> </node> <node␣id='-14'␣action='modify'␣visible='true'␣lat='50.98665101830255'␣lon='11.292033601458362'> <tag␣k='curve'␣v='middle'␣/> </node> <node␣id='-12'␣action='modify'␣visible='true'␣lat='50.9836819453887'␣lon='11.292176522544896'> <tag␣k='curve'␣v='middle'␣/> </node> <node␣id='-10'␣action='modify'␣visible='true'␣lat='50.98237229395303'␣lon='11.29166835868166'> <tag␣k='curve'␣v='middle'␣/> </node> <node␣id='-8'␣action='modify'␣visible='true'␣lat='50.97900302087013'␣lon='11.29141427675004'> <tag␣k='curve'␣v='middle'␣/> </node> <way␣id='-90'␣action='modify'␣visible='true'> <nd␣ref='-58'␣/> <nd␣ref='-56'␣/> <tag␣k='highway'␣v='primary'␣/> </way> <way␣id='-88'␣action='modify'␣visible='true'> <nd␣ref='-30'␣/> <nd␣ref='-24'␣/> <nd␣ref='-28'␣/> <tag␣k='curve'␣v='yes'␣/> <tag␣k='highway'␣v='primary'␣/> </way> <way␣id='-86'␣action='modify'␣visible='true'> <nd␣ref='-28'␣/> <nd␣ref='-26'␣/> <tag␣k='highway'␣v='primary'␣/> </way> <way␣id='-84'␣action='modify'␣visible='true'> <nd␣ref='-32'␣/> <nd␣ref='-22'␣/> <nd␣ref='-30'␣/> <tag␣k='curve'␣v='yes'␣/> <tag␣k='highway'␣v='primary'␣/> </way> <way␣id='-82'␣action='modify'␣visible='true'> <nd␣ref='-34'␣/> <nd␣ref='-32'␣/> <tag␣k='highway'␣v='primary'␣/> </way> <way␣id='-80'␣action='modify'␣visible='true'> <nd␣ref='-36'␣/> <nd␣ref='-20'␣/> <nd␣ref='-34'␣/> <tag␣k='curve'␣v='yes'␣/> <tag␣k='highway'␣v='primary'␣/> </way> <way␣id='-78'␣action='modify'␣visible='true'> <nd␣ref='-38'␣/> <nd␣ref='-18'␣/> <nd␣ref='-36'␣/> <tag␣k='curve'␣v='yes'␣/> <tag␣k='highway'␣v='primary'␣/> </way> <way␣id='-76'␣action='modify'␣visible='true'> <nd␣ref='-42'␣/> <nd␣ref='-16'␣/> <nd␣ref='-40'␣/> <tag␣k='curve'␣v='yes'␣/> <tag␣k='highway'␣v='primary'␣/> </way> <way␣id='-74'␣action='modify'␣visible='true'> <nd␣ref='-40'␣/> <nd␣ref='-38'␣/> <tag␣k='highway'␣v='primary'␣/> </way> <way␣id='-72'␣action='modify'␣visible='true'> <nd␣ref='-46'␣/> <nd␣ref='-14'␣/> <nd␣ref='-44'␣/> <tag␣k='curve'␣v='yes'␣/> <tag␣k='highway'␣v='primary'␣/> </way> <way␣id='-70'␣action='modify'␣visible='true'> <nd␣ref='-44'␣/> <nd␣ref='-42'␣/> <tag␣k='highway'␣v='primary'␣/> </way> <way␣id='-68'␣action='modify'␣visible='true'> <nd␣ref='-50'␣/> <nd␣ref='-12'␣/> <nd␣ref='-48'␣/> <tag␣k='curve'␣v='yes'␣/> <tag␣k='highway'␣v='primary'␣/> </way> <way␣id='-66'␣action='modify'␣visible='true'> <nd␣ref='-48'␣/> <nd␣ref='-46'␣/> <tag␣k='highway'␣v='primary'␣/> </way> <way␣id='-64'␣action='modify'␣visible='true'> <nd␣ref='-52'␣/> <nd␣ref='-10'␣/> <nd␣ref='-50'␣/> <tag␣k='curve'␣v='yes'␣/> <tag␣k='highway'␣v='primary'␣/> </way> <way␣id='-62'␣action='modify'␣visible='true'> <nd␣ref='-54'␣/> <nd␣ref='-52'␣/> <tag␣k='highway'␣v='primary'␣/> </way> <way␣id='-60'␣action='modify'␣visible='true'> <nd␣ref='-56'␣/> <nd␣ref='-8'␣/> <nd␣ref='-54'␣/> <tag␣k='curve'␣v='yes'␣/> <tag␣k='highway'␣v='primary'␣/> </way> </osm>
Evtl. hat ja jemand auch an dem Thema Interesse und die Kenntnisse einen kleinen Renderer zu schreiben, der das umsetzen würde, oder hat bessere/andere Vorschläge zu dem Thema.