"(motor_)vehicle=agricultural;forestry" funktioniert in verbreiteten Routern und Navis nicht: Lösungsvorschlag

steht so im Ursprungsposting: Version2

Jetzt sehe ich es, in diesem seltsam unscharfen, verzerrten Bild. :wink:

Man könnte es über vehice=agricultural + forestry=yes lösen, aber ich sehe hier auch eher die Router in der Lösungspflicht.

EDIT: Korrektur: forestry ist nur als value, nicht als key erlaubt.
EDIT2: Ist doch erlaubt.

Ein wenig in die Breite gezogen, ja.
Unscharf? Ich kann es ohne Brille perfekt lesen, wenn ich zwei Mal zum Vergrößern draufgeklickt habe. Man weiß bei Foren nie, bei welcher Dateigröße Schluss ist und beschränkt sich daher.

Ich wollte halt zusätzlich zum verlinkten Routing, wo man jedes Mapping einzeln anklicken muss, eine Übersicht auf einen Blick anbieten. Eine Vektorgrafik, die trotz geringem Speicherbedarf viel schärfer wäre, will dieses Forum nicht.

Wenn man dass so lösen muss kommt man allerdings nicht weit, weil man alle möglichen Permutationen vorher definieren muss (zumindest weitere Schilder hängen gerne mal in beliebiger Reihenfolge):

agricultural;forestry;destination
destination;agricultural;forestry
destination;agricultural
destination;forestry
agricultural;destination
forestry; destination

Hier müssten schon die Semikolons geparst werden.

1 Like

Um sowas zu testen sollte man nicht Start/Ziel in einen gesperrten Bereich packen. Hier könnten Router durchaus Ausnahmen machen.

Und nochmal auch von mir der Hinweis:

  • Das Tag forestry=yes ist nicht definiert!!
  • agricultural=yes meint langsame Fahrzeuge (Ursprünglich landwirtschaftliche Fahrzeuge=Traktoren) und nicht den landwirtschaftlichen Verkehr (Zweck).
2 Likes

Das Wiki ist anderer Ansicht: https://wiki.openstreetmap.org/wiki/DE:Key:forestry
Ansonsten volle Zustimmung, vor allem zum Testaufbau.

Folgendes Beispiel OpenStreetMap zeigt, dass OSRM und Graphhopper in der Tat darüber routen, während Valhalla dies erst macht, wenn man den Startpunkt weit genug auf den grade2-track legt (bei 8 min zu 3 min geschätzter Fahrzeit).

Edit (12.05.2023): nach dem Online-Update routet jetzt auch Graphhopper bei meinem Testfall außen herum.

2 Likes

Danke für den Link.
https://wiki.openstreetmap.org/w/index.php?title=Key:forestry&action=history
Es sind hier aber tatsächlich forstwirtschaftliche Fahrzeuge beschrieben und nicht forstwirtschaftlicher Verkehr.

Es gibt mittlerweile 7000 Verwendungen. In Deutschland dürften das so gut wie nie vorkommen.
Wenn doch dann ist es meist die übliche Verwechslung von forst/landwirtschaftlichen Verkehr mit forst/landwirtschaftlichen Fahrzeugen.

1 Like

Access tags sind in den Auswirkungen relativ einfach - weil es nur 3 Zustände gibt. Das Problem ist die kombination mit anderen tags:

Ja → kosten niedrig
Vielleicht → wird nur genommen wenn unbedingt nötig
Nein → fällt aus dem graph wird nie genutzt, keine berücksichtigung im routing

So - Und jetzt kann man die ganzen total schön differenzierten tags in die Körbchen sortieren:

nix, permissive, yes → Ja
destination → Vielleicht
private, customers, no, forestry, agricultural und alles andere ->Nein

Es gibt in der Auswertungen keine anderen “auswirkungskörbchen” weil eben Dijkstra oder A* so funktionieren.

Und doch - das parsen ist total kompliziert - Ich habe selber solche Parser geschrieben und es gibt keine eindeutigkei - Was ist mit

highway=secondary
access=yes
motor_vehicle=no

oder

highway=path
access=yes
vehicle=no
motor_vehicle=yes

Es gibt keine kombination die man nicht in den OSM Daten findet. Und irgendwer ist immer da der erwartet “Das ist doch offensichtlich was da sein soll”. Und Mapper sind zunehmend in dem Modus “viel hilft viel”.

Flo

Das ist schon klar. Nur wenn ich versuche das per Zuordnungstabelle zu machen ohne die Aufzählungen vorher aufzulösen dann …

Das lässt sich ganz eindeutig auflösen, das speziellere Überschreibt das allgemeinere (du hast es ja schon so hingeschrieben). Die Frage ist nur, ob der Mapper da auch so gedacht hat.

a) heißt alles erlaubt außer Kraftfahrzeuge
b) alles erlaubt außer Fahrzeuge die keine Kraftfahrzeuge sind

viel problematische sind Kombinationen wie

highway=path
foot=designated
bicycle=designated.
access=no

Auch hierfür ist die Lösung eindeutig. aber vermutlich wollte der Mapper ja den gemeinsamen Rad/Fußweg einfach nur komplett sperren

2 Likes

Die Keys sind hierarchisch: accessvehiclemotor_vehiclemotorcar.

Man muss sie von allgemein zu speziell auswerten. Und nicht die Defaultwerte vergessen :face_with_spiral_eyes: !

Also highway=path → no, access=yes → yes, vehicle=no → no, motor_vehicle → yes. Endergebnis für Autos: yes.

Und jetzt schaut Euch doch mal Key:access - OpenStreetMap Wiki mit der Hierarchie an. Stellt Euch mal vor, Ihr sollt als Entwickler einen Router konfigurieren und habt Euch noch nie mit den Feinheiten des OSM-Taggings beschäftigt? Wer soll das denn im ersten Versuch fehlerfrei interpretieren? Und dann noch Semikolons? Könnt ihr vergessen.

Auch dass agricultural als Key etwas anderes bedeuten soll, als als Value? :man_facepalming:

Ich würde vorschlagen, darauf zu verzichten, einen Unterschied zwischen motor_vehicle=agricultural und agricultural=yes zu machen und mit dieser Ungenauigkeit zu leben. Der diskutierte Fall sollte dann wie Version2 getaggt werden.

1 Like

Das sind die Eigenheiten von OSM-Daten. Dass muss man mit der Zeit lernen!
Für das generalisieren sind die Datennutzer zuständig.

Das besser zu dokumentieren und ggf. begrifflich nachzubessern, da darf jeder mithelfen und ggf. Proposals einreichen.

agricultural=yes und access=agricultural ist übrigens ganz gravierender Unterschied.

1 Like

Bei Deiner Betrachtung geht es aber vielmehr darum, welche unterschiedlichen Routing-Kosten die Router den einzelnen Taggings zuordnen. Valhalla erscheint hier die gro0e nördliche Schleife halt günstiger. Das hat aber nichts damit zu tun, ob ein Router einen Weg aufgrund seines Taggings für eine Auto grundsätzlich verschmäht oder nicht: OpenStreetMap Da zeigt sich auch an diesem Weg, dass auch Valhalla grundsätzlich bereit ist, ein Auto über “motor_vehicle=agricultural;forestry” zu routen, was das Problem ist.

@Langlaeufer @hfs Ihr habt das eigentliche Problem nicht erkannt

Der Widerspruch liegt doch nicht in der Hirarchie, sondern bereits im highway=secondary vs. motor_vehicle=no
Wenn da nur noch Fuß-, Fahrrad-, Kutsch- und Handkarrenverkehr zulässig ist, wo ist denn da noch die Verkehrsbedeutung einer secondary?

Genauso hier:

Wenn nur Fußgänger und Kfz, auch mehrspurige bis hin zu Bussen und Lkw erlaubt sind, dann stimmt was nicht. Der Router weiß aber nicht, ob path oder motor_vehicle richtig ist. Das wird auch durch Hierarchie nicht wieder richtig.

2 Likes

Worauf ich nur hinaus wollte, man kann das auflösen, dass das keinen Sinn macht ist eine andere Frage.
Ich hab mir daher bisher immer eine Tabelle gemacht mit allen Tagkombination die vorkamen und hab dann geraten, was die Mapper wohl damit gemeint haben. Das funktioniert natürlich nicht mehr, wenn man das für beliebig große Gebiete machen möchte, typische Fehler sollte man aber dennoch abfangen und dazu gehört agricultural=yes oder access=destination/agricultural/forestry → (motor_)vehicle = *

Dann liegt halt (wahrscheinlich) ein Tagging-Fehler vor und es gilt: garbage-in, garbage-out.

2 Likes

Ich verstehe auch nicht, was die Beispiele bringen sollten. Willst Du sagen, dass die Hierarchie nicht immer gilt, sondern die Interpretation auch noch vom Top-Level-Tag abhängig sein soll? Dann wird die ganze Tag-Suppe ja noch undefinierter.

Nein, es geht nicht um die Routing-Kosten. Es geht darum, dass Start und Ziel außerhalb von “agricultural;forestry” in nicht eingeschränkten Straßen liegen sollen. Ich habe lange gesucht, um ein halbwegs vernünftiges Beispiel zu finden. Wenn ich in den grade2-track übergehe, bin ich nicht mehr in einem nicht eingeschränkten Bereich, Standardwert in Deutschland wäre für motor_vehicle=destination, siehe OSM tags for routing/Access restrictions - OpenStreetMap Wiki

Und 8 Minuten außenrum gegenüber 3 Minuten über grade2-track plus “agricultural;forestry”-grade1-track ist deutlich. Wie @Langlaeufer gesagt hat: für einen richtigen Test müssen Start und Ziel außerhalb einer Einschränkung sein, sonst kann man keine Aussage treffen, außer man schaut wie @whb im Code und/oder Profil nach.

Ist auch die Frage, inwieweit der Unterschied in der Praxis noch vorhanden ist, oder man für die langsamen Fahrzeuge einen eindeutigeren Key einführen sollte, da das leicht verwechselt oder bewusst ignoriert wird. Gibt auch einen Niederländer, der das weltweit ändert oder geändert hat. Ich habe ihn bei mir in der Nähe schon zweimal auf den Unterschied aufmerksam gemacht, genauso wie auch andere, wo er meinte, “vehicle=destination;agricultural” wäre mehrdeutig (was auch eine eigenartige Argumentation ist, denn wenn er dieser Ansicht ist und, wie er angibt, die Beschilderung vor Ort nicht kennt, wie kann er dann die Mehrdeutigkeit auflösen?).

1 Like