x

Falsche Anzeige übereinander liegender Straßen


  1. Falsche Anzeige übereinander liegender Straßen · Radeln (Gast) · 07.02.2011 18:32 · [flux]

    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ß?


    • Re: Falsche Anzeige übereinander liegender Straßen · chris66 (Gast) · 07.02.2011 18:35 · [flux]

      Womit hast Du die denn kreiert?


    • Re: Falsche Anzeige übereinander liegender Straßen · aighes (Gast) · 07.02.2011 18:35 · [flux]

      Was für eine Karte hast du denn kreiert?


    • Re: Falsche Anzeige übereinander liegender Straßen · Radeln (Gast) · 07.02.2011 20:37 · [flux]

      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]

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

    • Re: Falsche Anzeige übereinander liegender Straßen · aighes (Gast) · 07.02.2011 20:46 · [flux]

      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.


    • Re: Falsche Anzeige übereinander liegender Straßen · brogo (Gast) · 08.02.2011 09:13 · [flux]

      Radeln wrote:

      Die Autobahn (layer=2) wird von diversen Straßen, der Eisenbahn und einem Fluß überlagert.

      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


    • Re: Falsche Anzeige übereinander liegender Straßen · Radeln (Gast) · 08.02.2011 09:22 · [flux]

      aighes wrote:

      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.

      ACK.


    • Re: Falsche Anzeige übereinander liegender Straßen · Radeln (Gast) · 08.02.2011 09:27 · [flux]

      brogo wrote:

      Radeln wrote:

      Die Autobahn (layer=2) wird von diversen Straßen, der Eisenbahn und einem Fluß überlagert.

      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.

      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.31 … 04&zoom=16


    • Re: Falsche Anzeige übereinander liegender Straßen · brogo (Gast) · 08.02.2011 09:48 · [flux]

      Radeln wrote:

      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.31 … 04&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


    • Re: Falsche Anzeige übereinander liegender Straßen · Weide (Gast) · 10.02.2011 08:44 · [flux]

      Hi,

      brogo wrote:

      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.

      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


    • Re: Falsche Anzeige übereinander liegender Straßen · hurdygurdyman (Gast) · 10.02.2011 09:22 · [flux]

      Weide wrote:

      Hi,

      brogo wrote:

      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.

      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 😠
      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.


    • Re: Falsche Anzeige übereinander liegender Straßen · de_muur (Gast) · 10.02.2011 10:53 · [flux]

      hurdygurdyman wrote:

      Bitte nicht schon wieder diese Diskussion 😠
      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