Karte der Abbiegebeschränkungen (map of turn restrictions)

Cool danke.

Beispiel:
http://www.openstreetmap.org/browse/relation/1763612

Herr mmd, bitte prüfen. :wink:

Ohh, ein toller Ort. Da fällt mir gleich auf, dass es ziehmlich unrealistisch ist, dass eine Straßenbahn an der Station “Münchner Freiheit” auf 5-10m breite wenden kann :wink:
Da hat jemand den Gleisraduis im vgl. zu Luftbild viel zu eng gezeichnet, wer kennt sich vor Ort aus und mag es verbessern?

Funktioniert soweit gut, wie von dir geplant und von uns angeregt.

Eine Anregung hätte ich noch:
Warnungen kann man optisch nicht von Turn-Restriction ohne Warnung unterscheiden. Vielleicht mit gelben Rand, einer rosa Füllung oder was auch immer dir sinnvoll/angemessen erscheint, etwas hervorheben.

Dabei geht es natürlich nur noch um den Feinschliff. Die Anwendung als solche ist bereits in ihrer jetzigen Form absolut nützlich.

Edbert (EvanE)

Die Icons bei Warnungen sind gelb hinterlegt. Bei no-Restrictions fällt das eher auf, weil der Weißanteil sehr groß ist. Only-Restrictions sind da etwas unauffälliger, weil praktisch nur der Pfeil gelb ist. Je nach Farbverhalten des Monitors sieht man das relativ gut bis fast überhaupt nicht. Nach dem Lesen der Restrictions bekommt man oben links die Anzahl der Restrictions mit Warnungen, wenn welche gefunden wurden und ist so zumindest informiert, dass es etwas zu Prüfen gibt. Wenn du bessere Icons (am besten Lizenz CC0) basteln willst, dann nur her damit (die bisherigen sind png, 32x32px), ich bin auch nicht gerade der große Grafiker.

Auf meinem Monitor sieht man den Unterschied bei den no_* Warnungen (wie du schriebst großer Anteil) deutlich, bei den only_* sehe ich ihn kaum. Vielleicht einfach für die only_* Warnungen ein kräftigeres Gelb verwenden. Ggfs. könnte man auch eine andere Farbe für die Warnungen nutzen, bei der sich dann der Pfeil bei den only_* Warnungen besser von den fehlerfreien abhebt. Ich denke da in Richtung eines Rot-Tons. Ansonsten würde ich alle Warnungen einfach mit einem kräftigen farbigen Rand (z.B. schwarz-gelb oder rot-weiß wie die typischen Absperr-Bänder) versehen.

Wenn da nichts passendes dabei ist, hilft ja immer noch das Abschalten der anderen zwei Overlays.

Übrigens sind die Zahlen oft leicht zu groß. Wobei ich vermute, dass die Zahlen auf ganze Kacheln gerechnet sind, sodass einige Anzeigen außerhalb des real sichtbaren Bereiches liegen können.

Edbert (EvanE)

Ich verwende map.getBounds(), um den Anzeigebereich zu erhalten. Da muss ich eben nehmen, was Leaflet mir liefert. Etwas besseres habe ich nicht. Dass die BoundingBox offensichtlich etwas größer als der sichtbare Bereich auf dem Bildschirm ist, muss man eben in Kauf nehmen.

Das stimmt so nicht. Die getBounds() Methode funktioniert meiner Erfahrung nach recht zuverlässig. :stuck_out_tongue:

Der Grund für die zu-viel gezählten Relationen ist eher der, dass sehr häufig Relationen nur zum Teil in der BoundingBox liegen (z.B. nur die Hälfte des from- oder to-Wegs). Du malst den Marker aber nur an den via-Punkt (bzw via-Weg), der dann schon außerhalb der Karte liegt. D. h., wenn du in deiner “zeichne Marker” Routine die Marker einzeln auf die BoundingBox überprüfen würdest, könntest du die wirkliche Anzahl zählen. PS: dafür kannst du ganz einfach die Methode map.getBounds().contains(<marker_pos>) verwenden.

Danke euch beiden für die Erklärung.

Für mich ist diese Frage nur Kleinkram und mir ist wichtiger, zu verstehen, was die Gründe dafür sind, als eine perfekte Lösung zu haben. In diesem Sinne ist meine Frage für mich ausreichend beantwortet.

Edbert (EvanE)

Ja, das habe ich gestern jemandem in einer PM auch so erklärt, hatte übersehen, es hier zusätzlich zu meiner Vermutung auch noch reinzutippen. Danke für den Hinweis! Es reicht, wenn die allerletze Node eines ellenlangen Weges innerhalb der Boundingbox ist, um die Relation zu bekommen. Der Marker ist dann natürlich irgendwo, nur nicht im Bildschirmausschnitt.

Es gibt Neuigkeiten:
Rechts unten ist ein Zahnrad, mit dem ein Einstellungsdialog geöffnet werden kann. In Grenzen einstellbar sind:

  • Zoomlevel, ab dem restrictions geladen werden (minimal 12)
  • Winkelabweichung, ab dem eine restriction eine Warnung bekommt

Die Winkelabweichung ist so zu verstehen:
bei straight: Abweichung nach links oder rechts von genau geradeaus (0 Grad)
bei right/left: Abweichung von genau rechts (90 Grad) bzw. genau links (-90 Grad)

Geänderte Einstellungen werden nicht gespeichert (das will ich auch nicht einbauen). Die neu eingestellten Werte greifen ab der nächsten Neuberechnung, also beim Ziehen der Karte oder beim Herauszoomen. Wird die Seite neu geladen, sind wieder die Defaultwerte gültig.

Danke Zartbitter,
dein Tool ist eine tolle Sache. Ich konnte schon etliche Fehler korrigieren.
Was ich mir noch wünschen würde, ist eine Funktion Warnungen auszuschalten. Ähnlich wie bie Keep Right, wo ich sagen kann “He, das ist kein Fehler, soll so sein.”

Gruß bonzulu

Im Infodialog steht “There is no way of telling this map to ignore a warning on a specific turn restriction.”
Der Grund dafür ist, dass es keine Serverkomponente gibt. Die Daten werden live vom Browser aus der Overpass-API geholt und dann lokal in deinem Browser verarbeitet. Es gibt keine Datenhaltung, wo man sowas wie “Relation 123 in Version 5 ist ok” abspeichern kann.

Hi,
http://www.openstreetmap.org/browse/relation/2074391
wird als Fehler angezeigt.
ok, restriction:type ist nicht dokumentiert, aber gleich als Fehler werten? :wink:

Der Fehler wird erkannt, wenn untersucht wird, um was für eine Restriction es sich handeltt. Dazu werden, wie es bisher dokumentiert ist , restriction und ggf. restriction:* als Unterklasse in Bezug auf Fahrzeugtyp herangezogen. Werden mehrere gefunden, muss der value gleich sein, sonst wird ein Fehler gemeldet. Wenn zum Zeitpunkt der Programmierung undokumentierte restriction:* verwendet werden, die eine ganz andere Semantik haben, dann musst du mit dem Fehler leben :wink:

Gibt es noch weitere restriciton:* mit einer komplett anderen Bedeutung, die in Verwendung sind? Damit ich alles in einem Aufwasch in eine Sonderlocke packen kann …

Für die weltweit 2 (in Worten: zwei)* Vorkommen von restriction:type gibt es jetzt eine Sonderlocke - die Werte werden ausgefiltert und ignoriert :).

*) laut taginfo, Datenstand 30.1.13

Danke. Die Erweiterung restriction: = * ist an mir vorbeigegangen. Somit werde ich meine beiden restriction:type wieder löschen.

Ich wollte übrigens noch ein Lob aussprechen, dass restriction: = * direkt mit berücksichtigt wurde. Ist mir schon vor einer Weile beim Herumspielen mit der Karte positiv aufgefallen. :slight_smile:

In der Auswertung der Abbiegebeschränkungen könnte noch aufgenommen werden, dass oneway=reversible wie oneway=no behandelt wird, denn dort wird in beide Richtungen gefahren - nur je Richtung zu unterschiedlichen Zeiten. (Beispiel).

Auch die Rolle location_hint wird als Fehler behandelt, obwohl sie im Wiki aufgeführt ist und zur Relation:restriction als Hinweis für den Platz des Verkehrszeichens verwendet werden soll.

Franz

Noch ein Fehler in der Auswertung:
Wenn es heißt: restriction:bicycle=only_* oder =no_, sollte auch oneway:bicycle= statt oneway=* geprüft werden. (Beispiel)

Franz

Ich würde mich bereiterklären, svg-Icons zu basteln. Gibts irgendwelche besonderen Wünsche, was es für Icons geben muss? Ich würde sonst erst mal 6 Stück basteln:
Nur links, nur rechts, nur geradeaus, nicht links, nicht rechts, nicht geradeaus

Vielleicht hilft für Icons der Open Source Traffic Sign Font von Mapillary: http://traffico.io/