Falsche Anzeige übereinander liegender Straßen

Hi,

in meiner selbst kreierten Karte werden sich überlagernde Straßen nicht wie per layer vorgegeben angezeigt.
Die Autobahn (layer=2) wird von diversen Straßen, der Eisenbahn und einem Fluß überlagert. Ist zwar nicht sonderlich störend, interessieren würde es mich trotzdem, wo man da drehen muß?

Womit hast Du die denn kreiert?

Was für eine Karte hast du denn kreiert?

Karte wird erstellt mit mkgmap:

java -ea -Xmx2560M -jar ./mkgmap/mkgmap.jar
–description=OSM_DE
–country-name=Deutschland --country-abbr=DE
–name-tag-list=“name:de,name,int_name”
–style-file=./style/
–generate-sea=extend-sea-sectors,close-gaps=5000
–family-id=3333 --product-id=1
–series-name=OSM_Deutschland
–area-name=Deutschland
–overview-mapname=OSM_Deutschland
–tdbfile
–draw-priority=25
–latin1
–ignore-maxspeeds
–ignore-turn-restrictions
–no-poi-address
–max-jobs=2
-c template.args 3333.TYP

Hier noch die linestyles, falls relevant:
aerialway=cable_car [0x10e14 level 4]
aerialway=gondola [0x10e14 level 4]
aerialway=chair_lift [0x10e15 level 3]
aeroway=runway [0x10f12 level 3]
aeroway=taxiway [0x10f13 level 2]

contour=elevation & contour_ext=elevation_medium
{ name ‘${ele|conv:m=>ft}’; }
[0x21 resolution 22]
contour=elevation & contour_ext=elevation_major
{ name ‘${ele|conv:m=>ft}’; }
[0x22 resolution 20]

highway=track & (tracktype=grade1 | surface=paved | surface=asphalt | surface=concrete | surface ~ ‘paving_stones.*’ | surface=cobblestone) [0x13 level 3]
highway=track & tracktype=grade2 [0x0e level 3]
highway=track & tracktype=grade3 [0x0f level 2]
highway=track & tracktype=grade4 [0x0f level 2]
highway=track & tracktype=grade5 [0x0f level 1]
highway=track [0x0f level 2]

highway=cycleway & (surface=paved | surface=asphalt | surface=concrete | surface ~ ‘paving_stones.*’ | surface=cobblestone) [0x10 level 3]
highway=cycleway [0x16 level 3]

highway=path & (tracktype=grade1 | surface=paved | surface=asphalt | surface=concrete | surface ~ ‘paving_stones.’ | surface=cobblestone) & (bicycle=designated | bicycle=official) [0x10 level 3]
highway=path & (tracktype=grade1 | surface=paved | surface=asphalt | surface=concrete | surface ~ 'paving_stones.
’ | surface=cobblestone) [0x11 level 2]
highway=path & (bicycle=designated | bicycle=official) [0x16 level 3]
highway=path [0x17 level 2]

highway=footway & (tracktype=grade1 | surface=paved | surface=asphalt | surface=concrete | surface ~ ‘paving_stones.’ | surface=cobblestone) & bicycle=yes [0x31 level 2]
highway=footway & (tracktype=grade1 | surface=paved | surface=asphalt | surface=concrete | surface ~ 'paving_stones.
’ | surface=cobblestone) [0x11 level 2]
highway=footway & bicycle=yes [0x32 level 2]
highway=footway [0x17 level 2]

junction=roundabout & highway=trunk [0x0c level 6]
junction=roundabout & highway=primary [0x0c level 4]
junction=roundabout & highway=secondary [0x0c level 4]
junction=roundabout & highway=tertiary [0x0c level 4]
junction=roundabout & highway=unclassified [0x0c level 4]
junction=roundabout [0x0c level 3]

highway=residential & tunnel=yes [0x27 level 2]

highway=* {name ‘${name} (${ref})’ | ‘${ref}’ | ‘${name}’ }
highway=bridleway [0x0f level 2]

highway=motorway {add oneway=yes} [0x01 level 6]
highway=motorway_link [0x09 level 4]

highway=trunk [0x01 level 5]
highway=trunk_link & (cycleway=* | cycleway:left=* | cycleway:right=*) & (bicycle=designated | bicycle=official) [0x45 level 4] # Overlay Radweg
highway=trunk_link [0x08 level 4]

highway=primary & (cycleway=* | cycleway:left=* | cycleway:right=*) & (bicycle=designated | bicycle=official) [0x40 level 5] # Overlay Radweg
highway=primary [0x02 level 5]

highway=primary_link & (cycleway=* | cycleway:left=* | cycleway:right=*) & (bicycle=designated | bicycle=official) [0x45 level 4] # Overlay Radweg
highway=primary_link [0x08 level 4]

highway=residential & (cycleway=* | cycleway:left=* | cycleway:right=) & (bicycle=designated | bicycle=official) [0x44 level 2] # Overlay Radweg
highway=residential & oneway=yes & cycleway ~ 'opposite.
’ [0x06 level 2]
highway=residential & oneway=yes [0x50 level 2] # Overlay Einbahnstraße
highway=residential [0x06 level 2]

highway=living_street & oneway=yes & cycleway ~ ‘opposite.*’ [0x0b level 2]
highway=living_street & oneway=yes [0x53 level 2] # Overlay Einbahnstraße
highway=living_street [0x0b level 2]

highway=secondary & (cycleway=* | cycleway:left=* | cycleway:right=*) & (bicycle=designated | bicycle=official) [0x42 level 4] # Overlay Radweg
highway=secondary [0x04 level 4]

highway=tertiary & (cycleway=* | cycleway:left=* | cycleway:right=) & (bicycle=designated | bicycle=official) [0x43 level 3] # Overlay Radweg
highway=tertiary & oneway=yes & cycleway ~ 'opposite.
’ [0x05 level 3]
highway=tertiary & oneway=yes [0x52 level 3] # Overlay Einbahnstraße
highway=tertiary [0x05 level 3]

highway=unclassified & (cycleway=* | cycleway:left=* | cycleway:right=) & (bicycle=designated | bicycle=official) [0x41 level 3] # Overlay Radweg
highway=unclassified & oneway=yes & cycleway ~ 'opposite.
’ [0x03 level 3]
highway=unclassified & oneway=yes [0x51 level 3] # Overlay Einbahnstraße
highway=unclassified [0x03 level 3]
highway=unsurfaced [0x0a level 2]

highway=minor & (cycleway=* | cycleway:left=* | cycleway:right=*) & (bicycle=designated | bicycle=official) [0x41 level 3] # Overlay Radweg

highway=service [0x07 level 2]

highway=pedestrian & bicycle=yes [0x30 level 2] # & area!=yes
highway=pedestrian [0x0d level 2] # & area!=yes

highway=steps [0x26 level 2]

highway=road & (cycleway=* | cycleway:left=* | cycleway:right=*) & (bicycle=designated | bicycle=official) [0x41 level 4] # Overlay Radweg
highway=road [0x03 level 4]
highway=motorway {add oneway=yes} [0x01 level 6]

highway=minor [0x03 level 3]

highway=* [0x00 level 3]

natural=coastline [0x15 level 5]

railway=* & tunnel=yes [0x27 level 4]
railway=light_rail [0x14 level 4]
railway=rail [0x14 level 4]
railway=subway [0x14 level 4]
railway=tram [0x14 level 4]
railway=narrow_gauge [0x14 level 4]
railway=* [0x14 level 4]

route=ferry [0x1a level 4]

waterway=canal [0x1f level 4]
waterway=drain [0x1f level 2]
waterway=river [0x1f level 5]
waterway=stream [0x1f level 2]

boundary=administrative & admin_level<3 [0x1e level 7]

mkgmap kann das nicht direkt. Die Wege werden in der Reihenflge gerendert, wie sie in den Daten stehen.

Ausweg sind dann mehrere Karten, die man mit unterschiedlichen draw-prioritys transparent übereinander legt.

Einfaches Bspw. Du erstellst zuerst eine Karte, in der nur Tunnel enthalten sind, dann alles andere und dann alle Brücken. Nun stehst du vor dem Problem, dass die Tunnel von landuse&Co verdeckt ist. Sprich du musst vor den Tunneln alle Flächen rendern. Für ein funktionierendes Routing brauchst du entweder wiederum eine extra Ebene, wo alle Wege dann transparent erscheinen, oder du renderst in die Ebene mit den normalen Straßen Tunnel und Brücken transparent mit.

Wie du siehst ist das ganze recht aufwendig. Ich lebe lieber mit den temporären Fehldarstellungen als 4-5 Kartenebenen zu erstellen.

Steht layer=2 denn direkt in den OSM-Daten drin? Wenn ja, dann ist es eventuell falsch. Layer kommt nur zum Tragen, wenn die Objekte auch physisch übereinander liegen. Also wenn die Eisenbahnstrecke zum Beispiel mit einer Brücke einen Feldweg überquert. Die Brücke, und nur die bekommt dann layer=1. Alle Objekte die keinen Layer-Tag haben, sind standardmäßig auf Layer 0. Alle darüberliegenden Objekte bekommen die 1. Wenn über die Eisenbahn an gleicher Stelle noch eine Autobahnbrücke führt, dann bekommt diese dann einen Layer 2.

Wichtig: Layer bezieht sich immer auf die Erdoberfläche. Führt eine Bahnlinie auf einem Damm, bekommt dieser trotzdem layer=0 (kann man also weglassen); bei einem Bach der in einem Graben fließt ist es genauso.

Christian

ACK.

Bin zwar nicht der große Spezialist denke aber, daß layer=2 nicht falsch ist, auch wenn layer=1 da nicht benutzt wird.
Link: http://www.openstreetmap.org/?lat=50.3144855&lon=7.4954404&zoom=16

layer=1 würde ausreichen. Dann gibt es aber noch ein paar falsche layer-Angaben: Der Feldweg am südwestlichen Ende der Autobahnbrücke und weiter Richtung Nordwest und der Campingplatz am Nordufer haben falsche Layer-Tags. Dann gibt es noch einige layer=0. Das ist zwar nicht falsch, aber überflüssig.

Christian

Hi,

Das sehe ich nicht so. Layer haben nur eine relative Bedeutung; sind zwei Dinge übereinander, dann ist das mit dem höheren Layer weiter oben.

Es ist nur meist übersichtlicher, für die Erdoberfläche den Layer 0 zu nehmen und den anderen Layern möglichst kleine Zahlen zu geben. Das hat aber nur mit der Lesbarkeit durch andere Mapper zu tun. Bei der Auswertung sollten immer nur die vorhandenen Layer miteinander verglichen werden und niemals mit absoluten Zahlen verglichen werden.

Einen praktischen Unterschied fürs Mappen machen diese beiden Sichtweisen nur selten. Vierlleicht bei Bächen mit vielen ebenerdigen Brücken. Da sehe ich keinen Grund den Bach zu zerstückeln, nur um zwischen den Brücken den Layer 0 zu bekommen. Das würde ihn nicht übersichtlicher machen.

MfG
Weide

Bitte nicht schon wieder diese Diskussion :rage:
brogo hat recht. Ohne Layerangabe mappen wir die Erdoberfläche. Bachoberfläche ist Erdoberfläche und somit ohne Layer (layer=0). Brücke ist Bauwerk über Bach und bekommt somit layer=1. Fließt Bach unterirdisch durch Röhre bekommt Bach layer=-1. Selbst eine Furt bekommt layer=-1, weil sich dieser Weg unterhalb der Wasser- und somit Erdoberfläche befindet.

Die Diskussion braucht man wirklich nicht schon wieder, und eben weil es ein ewig Diskussionsthema ist, hat da auch keiner recht. Auch die obige Liste ist in einigen Punkten ziemlich unlogisch, und deshalb alles andere als unumstritten.

Gruss
Torsten