Hauszufahrten - Falsch zugeordnet / Routing

Ich bin voll auf Deiner Seite bezüglich der von Dir vorgeschlagenen Relation.
Deine Beispiele hinken aber zum Teil. In o.g. Beispiel ist doch die Zufahrt falsch eingezeichnet, oder ?
Hast Du dazu mal einen Link auf die OSM-Daten?

Edit:
Hier die Links zu den Zufahrten:
1.) https://www.openstreetmap.org/way/34138133/history
2.) https://www.openstreetmap.org/way/34138135/history
Nach meiner Auffassung ist die Straßen-Klassifizierung (track statt service / unclassified) bei 1.) auf der ganzen Strecke und bei 2.) auf einem Teil des Weges falsch.

Vermutlich ja. Diesen Fehler sehe ich auch öfters, da der Weg nach Optik und nicht nach Funktion gemappt wird. Aber kennst Du die Beschilderung vor Ort?

Das Grundproblem läßt sich auch durch 100% korrektes taggen von Wegen/Straßen nicht lösen.

Der Router wird und muss immer den nächst möglichen Ort zum Ziel (Luftlinie) suchen.
100 Meter Fußweg sind nunmal 100 Meter Fußweg und für KFZ nicht befahrbar. Da nimmt der Router logischerweise den Punkt der 99 Meter vom Ziel (Luftlinie) entfernt ist auch wenn dazwischen eine Bahntrasse liegt.

Einem Router die Logik beizubringen, das Luftlinie nicht das beste Kriterium ist, das der Router weiter denken muss halte ich im Moment für Wunschdenken.

Ich hatte ja bereits den Vorschlag für spezielle Anfahrtsadressen gemacht. Diese auch mit Angabe der Fahrzeugart. In solchen Fällen bekommt man bei der Navigation zur Bachtalstraße 100 nicht einen Treffer sondern mehrere.

  • Bachtalstraße 100 (ohne eine Angabe, der klassische POI)
  • Bachtalstraße 100 - KFZ Anfahrt
  • Bachtalstraße 100 - Lieferantenanfahrt
  • Bachtalstraße 100 - Per Fahrrad

Ich mache das mal deutlich an der kleinen Zeichnung die ich spontan auf dem Papier gemacht habe. Straße A ist eine mehrspurige Straße mit Radweg und Halte/Parkverbot. Straße bei ist die Straße zu der das Haus gehört mit dem zum Haus gehörigen Parkplatz.

Straße A liegt deutlich näher. Ich möchte das die Navigation mich zum zum Haus gehörigen Parkplatz routed der über Straße B erreichbar ist.

Das war meine Überlegung - Aber nicht begrenzt auf “Adressen” sondern beliebige OSM Objekte. Das macht immer Sinn wenn das OSM Objekt eine große Fläche ist. Industriegebiet, Großer Gebäudekomplex, Campingplatz, Flughafen etc und eben der Automatismus keine schöne Lösung findet.

Und das ein “Router weiterdenkt” ist vielleicht schön, aber es gibt immer fälle die anders sind, die der Automatismus maximal daneben liegt so das man dem Automatismus helfen muss.

D.h. mache eine relation mit


type=navaid
mode=car
name=Pforte Gfm. Rommel Kaserne Augustdorf

Roles:
destination <hier beliebige OSM Objekte>
final           <OSM Node>

destination darf beliebig viele Objekte beinhalten. Also alle Gebäude des Bundeswehrstandortes, den Fußballplatz des Standortes was auch immer gefunden werden könnte um dorthin zu navigieren.

mode beschreibt den modus des transports, also sowas wie car, foot, bicycle, hgv und ggfs sowas wie “public transport” wäre auch denkbar. D.h. ich kann die beste Haltestelle markieren für einen POI.

name beschreibt den user visible namen der dann angefahren wird. Z.b. sinnvoll wenn ein objekt an mehreren Relationen hängt z.b. “Flughafen Frankfurt” hängt an den relationen für “Abflug Terminal 1”, “Ankunft Terminal 1”.

“final” enthält einen Punkt der dann angefahren werden soll - Und ja - Das MUSS ein Punkt sein. Sondern haben wir eine Rekursion.

name/mode sind optional.

Natürlich “name” auch mit extension “name:de” “name:en” - ist ja user presentable.

Flo

In diesem Fall führt aber eine Straße direkt bis zum Haus. :rage:
Bitte nicht Äpfel mit Birnen vergleichen! :roll_eyes:

wie hast du den Parkplatz gemappt und dass er zu dem Haus gehört?

Für deinen Wunsch müsstest du dem Router beibringen, dass er dich zum (fußgängerroutingtechnisch) nächstgelegenen Parkplatz (oder potentiellen Parkplatz) bringt. Jemand anderes will ja vielleicht nur jemanden absetzen oder das Haus kurz von außen ansehen welche Farbe es hat, da ist ihm die andere Straße lieber, auch wenn sie nicht zu dem Haus „gehört“

Das ist das regionale wissen das wir als mapper einbringen. Alternativ nimm den Parkplatz eines Supermarktes. Da ist es sehr offensichtlich.

Der Wunsch derer die dann zu dem Supermarkt routen ist zum Parkplatz zu kommen. Wie stellst du das sicher?

Flo

Beim Supermarkt ist es genauso, vielleicht willst Du nur Deinen Freund abholen, der dort arbeitet oder einkaufen war? Wenn Du mit dem Auto einkaufen willst, ist der Parkplatz sicherlich angemessen. Ohne dass man es spezifiziert, kann der Router nur raten.
Wenn der Supermarkt als area gemappt ist, und der Parkplatz Teil davon ist, dann kann der Router es “einfach” bestimmen (außer es gibt mehrere Parkplätze, dann muss man wiederum entscheiden, zu welchem man will, das ist bei großen Geschäften wie Einkaufszentren, oder auch IKEA etc., oft der Fall.)

Ich vermute der Anspruch der Router ist derzeit, einen in die Nähe des Ziels zu bringen, und die letzten Meter erledigt dann Brain 1.0, aber wenn man wirklich bis zum Milchregal geführt werden will, dann muss natürlich auch gemappt sein, wo das Milchregal ist (wenn nicht, dann könnte der Router z.B. wissen, dass die Milch in Supermärkten normalerweise ganz hinten ist und mangels konkreter Daten dies als default annehmen). Das würde man im Moment aber wohl nichtmal von Google erwarten :stuck_out_tongue:

Der Punkt ist aber das mit unseren Daten wir teilweise auch mal 10km daneben liegen. Du bekommst heute bei bestimmten Adressen eine Ansage “Sie haben das ziel erreicht” wenn noch eine Bahnlinie und der Mittelkanal dazwischen liegt und du das Ziel nicht einmal siehst. Und DAS bekommt Google besser hin.

Flo

Ich gebe Dir da schon recht, ist mir auch schon öfters passiert, dass man auf einen Feldweg geschickt wurde, weil der dann dort wo er aufhört am nächsten am Zentroid des POIs liegt, obwohl man dort gar keinen Zugang hat, weil ein Zaun da steht. In erster Linie sehe ich da die Router in der Verantwortung, wenn Eingänge gemappt sind sollte man dorthin geleitet werden, bevorzugt zu entrance=main. Ggf. sollten auch Parkplätze eine Rolle spielen.

Google weiß vermutlich, wo der Eingang des Flughafens in Rom ist, auch ohne dass es in den Daten explizit gemappt sein muss (anhand der Bewegungsdaten der Menschen). Sobald man die Positionen eines Anteils der Menschen an einem Ort hat, dürfte es relativ einfach sein zu erkennen, dass die Route die OSM vorschlägt nicht funktionieren kann, obwohl man das als Mensch auch so auf einen Blick erkennen kann, wo wird wohl der Eingang sein, an der Autobahnzufahrtsschleife um den Bahnhof, umringt von Terminalgebäuden, oder am Ende der Landebahn auf der Tertiarystraße ohne Verbindung von der Straße zum Flughafen:

https://www.openstreetmap.org/directions?engine=fossgis_osrm_car&route=41.9006%2C12.5025%3B41.8144%2C12.2269

Zu Fuß sind es von dort noch 7km zum Flughafen…
https://www.openstreetmap.org/directions?engine=graphhopper_foot&route=41.8113%2C12.2222%3B41.7946%2C12.2508

Und wenn ein kompliziertes Objekt keinen Eingang hat? Oder 10?
Wo möchtest du denn bei deinem Beispiel explizit entrace=main hinsetzen? Irgendwie muss man dem Router ja dann eine Hilfe geben. Ja z.B. Google wird das sicher irgendeine KI machen :wink: Ich wüsste nicht, wo wir aber so viele Bewegungsdaten wie Google bekommen würden…
Also muss sowas für entsprechende Objekte speziell geregelt werden… Auch dein Beispiel Parkplatz hätte da wahrscheinlich nichts gebracht. Da wäre man wahrscheinlich in Focene am Strand gelandet…

Aber dieses Nebulöse “das muss der Router halt Lösen” ist ja genau das Problem.

Wie?

Ich habe hier ja diverse Beispiele gezeigt und es gibt keinen Automatismus der alle die Dinger löst. Es bleibt bei jedem Automatismus ein Bodensatz an dingen die er nicht Lösen kann, wie kriegen wir die zur “Userzufriedenheit” geregelt?

Flo

ein Objekt ohne Eingang das gleichzeitig kompliziert ist, das möchte ich sehen :slight_smile:

angenommen, man will zu einem Badesee, da könnte z.B. ein Weg oberhalb einer Abbruchkante über dem See verlaufen, aber ohne dass man hinkommt, und ein anderer an einer Wiese über die man an den See kommt, verbunden sein. In solchen Fällen wäre es am Besten, der Router würde einem den Zielbereich anzeigen und man könnte vorgeben, wo man hinwill. Im Endeffekt muss man sich ja sowieso das Ziel immer ansehen, weil man sonst riskiert, dass man sonstwohin geschickt wird.

die einzigen in unserem Umfeld die mir spontan einfallen, wo Bewegungsdaten in großem Maß anfallen, sind Mapbox und evtl. maps.me. Mit Bewegungsdaten wird es aber auch kompliziert, und die Suchanfragen wären sicherlich zusätzlich hilfreich. Wenn mehrere Publikumsmagneten in der Nähe liegen gibt es vermutlich noch selbstsame Wechselwirkungen. Selbst wenn man das alles hätte, dann wäre es trotzdem nur “raten” mit Hilfsmitteln. Gut gemacht würde es bestimmt in der Regel super funktionieren, aber eigentlich wollen wir doch versuchen die Daten so gut zu machen, dass es direkt oder indirekt mit hoher Wahrscheinlichkeit ablesbar ist.

Auf Routerseite könnte man z.B. je nach Typ unterschiedliche Heuristiken anwenden. Bei einem Flughafen will man normalerweise ans Terminal. Genauer gesagt interessiert meist auch, ob man zum Abflug oder zur Ankunft will (und klar, es gibt noch mehr Parameter, wenn man sowieso für Flughäfen eine Extrawurst brät könnte man z.B. auch fragen: Langzeitparken oder Kurzparken/Halten, etc.). Niemand will an den Zaun neben dem Rollfeld, oder nur die, die das auch ohne Router finden :wink: D.h. der Router müsste bei einem Flughafen eigentlich fragen: Ankunft oder Abflug, ggf. auch das Terminal (oder idealerweise eigentlich die Flugnummer, dann findet er den Rest allein, aber das wäre wohl Wunschkonzert) und einen dann zum Zugang dieses Terminals bringen. Oder er würde die Terminals die er dort kennt als Auswahl anbieten.

Wo es einen expliziten Übergang gibt, erwartet man einen der tags barrier=gate, barrier=_gate ,barrier=entrance, entrance=
Eigentlich will man immer zum Eingang oder Zugang wenn es einen gibt, wenigstens diese Fälle könnte man lösen.
Problem bei komplexen POIs ist oft, dass es einen Perimeter für den ganzen POI gibt, das sinnvolle Ziel aber Punkte auf Gebäuden oder Gebieten innerhalb des POIs sind, z.B. Ticketoffice, Supermarkteingang für die Kunden (und nicht der Personaleingang, Notausgang oder Warenanlieferung), Terminal bei Flughäfen, Eingang nahe des Gleises wo man hinwill bei Bahnhöfen, …
Bei komplexen POIs ist das Problem öfters, dass es drauf ankommt was man dort vorhat, bzw. wo genau man innerhalb des POIs hinwill, um festzustellen wo man sinnvollerweise hinroutet. In solchen Fällen sollte der Router am besten noch mal mehr oder weniger ausgefeilt nachfragen. Bei mehreren POIs hilft dann auch “navaid” nur insofern, als es beitragen könnte, die Rückfrage besser zu machen.

solche Probleme wie Fluss dazwischen könnte man dadurch verbessern, dass man im Anschluss an das Fahrzeugrouting von dem Endpunkt noch ein Fußgängerrouting zum angefragten POI macht. An dessen Länge könnte man ggf. erkennen, ob was nicht hinhaut. Geht natürlich nur, wenn man die Fußwege entsprechend gemappt hat.

Puh - ich habe das Gefühl wir fangen in diesem Thread wieder oben an. Ein Fußweg hilft dir bei car routing NULL. Er ist eher irreführend und produziert andere Fehler (Siehe meine Zeichnung weiter oben). Es ist einfach nur das verschieben des Problems woanders hin. Es löst es aber nicht.

Flo

ich kann Dir nicht folgen. Du willst ja beim Carrouting wenn ich das richtig verstanden habe nicht nächstmöglich ans Haus, sondern den nächstgelegenen Parkplatz finden. Weil das nicht immer so ist, wird man irgendwo nochmal nachfragen müssen, was Du willst, bzw. wirst Du es per Voreinstellung mitteilen müssen, oder es ergibt sich vielleicht aus der Analyse der Daten, die bereits von dem Nutzer gesammelt wurden, was er vermutlich meint…

So eindimensional ist das nicht. Ja - Normalerweise möchte ich möglichst nah ans Haus. Aber wenn das Nächstgelegene eine Autobahn ist, dann vielleicht doch nicht. Der Fall wäre ja noch einfach (Für Deutschland, in anderen Ländern darf ich auch auch der “Autobahn” parken). Aber vielleicht ist ja das Nächstgelegene (Mit oder ohne Fußweg) auch eine Primary - Ohne Standstreifen, wo ich gar nicht parken kann - und dann? Und dann gibt es vielleicht eine dem Haus zugeordneten Parkplatz, der ist aber ggfs weiter weg als die Primary. Wie kann ich das dem Automatismus beibringen? Funktioniert die regel in jedem fall?

Es ist nur eins von vielen Beispielen. Dieses “Da muss der Router sich drum kümmern” ist halt das typische “And here something magic happens”.

Deshalb - Schreib in Pseudocode auf wie du dir den Entscheidungsbaum denkst und ich suche dir 10 Stellen auf der Karte wo es schief geht. Die Realität ist viel komplizierter als das ein “one size fits all algorithm” das Lösen kann. Deshalb der Wunsch nach einer möglichkeit es explizit zu setzen.

Flo

Das Beispiel hast du doch schon gebracht - der Flughafen! Das Flughafengelände an sich hat keinen Eingang per-se. Es hat sehr viele. Und auf die Außenlinie des Flughafens kannst du halt auch keinen entrace=main irgendwo hinklatschen.
Denn was gehört denn alles zum Flughafen? Nur die internationale Zone? Die Parkhäuser aber nicht usw…

die Terminals haben allerdings klare Eingänge. Bei Riesengeländen kommt es schon mal vor, dass es viele Eingänge gibt, z.T. sogar auch weit voneinander entfernt. Bei großen Fabriken ist das auch der Fall. Aber dort haben die Eingänge/Zugänge in der Regel Nummern. Blöd ist halt, wenn der “Sonderbau” (z.B. Flughafen) keine Hausnummer/n hat.