Aufbrechen einer Straße zum Erzwingen von Routingänderungen auf Wunsch der Firma Veka in Sendenhorst

Nachtrag: welches sind die aktuellsten Luftbilder?
Bing-Maps ist von 2019
ESRI von 2020
NRW Orthofoto von ?

Auf letzterem sind auf der Straße durch die Lagerfläche mehrere Stop (highway=stop) zu erkennen - damit ließe sich zumindest hier das Routing mit reellen Daten geringfügig beeinflussen.

Außerdem sind auch an vielen Stellen die tatsächlichen Geschwindigkeitsbeschränkungen (10 oder 20 km/h) auf der Fahrbahn markiert. Die hier eingetragenen maxspeed=30 wären dann nur maxspeed=10 - auch sowas beeinflusst das Routing.

Man suche nach “VEKA AG” - Das ist der Flächen POI.

Flo

So - Jede routingengine die ich probiert habe ist hier subtil anders kaputt.

  • Eine gruppe ignoriert stumpf das access=private und fährt irgendwo auf das Firmengelände (Warum taggen wir das dann überhaupt?)
  • Eine gruppe schickt die User als Ziel auf das äusserste Ende des Parkplatzes.
  • Eine gruppe schickt den user auf die Straße hinter das Gelände.

Allesamt kaputt - Subtil unterschiedlich - aber kaputt.

Das problem ist ja ein Vielschichtiges.

  1. Welcher Punkt wird nach Geokodierung zurückgeliefert?
  2. Welche wege sind im router als “Akzeptabel” mit drin.

Bei 1) kommt wenn man nach VEKA AG sucht eben der Mittelpunkt der Gesamtfläche bei raus. Wenn man dann den nächstgelegenen weg sucht kommt halt unterschiedliches bei raus.

  • Ignoriere ich access=private wird halt beliebig auf dem Firmengelände rumchauffiert.
  • Ignoriere ich service/parking_aisle fahre ich halt auf den Parkplatz in die äusserste Ecke

Das ist ohne ein wirkliches hinting in der Geokodierung nicht zu lösen. Da kann man an den Daten rumbiegen wie man will. Und access=private zu ignorieren halte ich für das schlimmste aller probleme.

Flo

Das ist noch viel komplizierter.

Denn - Es muss zwar MENSCHENLESBAR - Aber Maschineninterpretierbar sein. Und das nicht nur für N Punkte, sondern auch für M Modalitäten.

Es könnte sein das der Haupeingang wenn du mit dem Rad oder zu Fuß unterwegs bist ein ganz anderer ist als wenn du mit dem Auto, oder dem LKW unterwegs bist.

Einfaches Beispiel - Flughäfen - Wenn ich “Flughafen München” eingebe dann möchte ich das ich gefragt werde “Ankunft”, “Abflug”, “Parken P1”, “Parken P2”, “Parken P3” etc etc etc

Das ist Einfach.

Möchte ich zum “Centro Oberhausen” dann gibt es keinen Punkt den ich mit dem Auto anfahren kann ausser die Parkplätzen. Bin ich zu Fuß oder mit dem Rad dann kann ich zu einem der wirklichen Eingänge.

D.h. Popup bei Modalität Auto und Ziel “Centro Oberhausen” ist dann “Parkplatz P3”, “Parkplatz P6”, “Parkplatz P7” etc etc etc … Wenn ich das mit Modalität zu Fuß oder Rad mache ist das “Eingang Platz der guten Hoffnung”, “Eingang Luise-Albert-PLatz”

Wenn du dann mit dem LKW kommst willst du vielleicht die Anlieferung an der Centreoallee …

Wenn du aktuell danach suchst findet du bei Nominatim die Bushaltestelle “CENTRO Oberhausen”

Komplexe POIs sind mit dem aktuellen Datenmodell bei OSM kaputt und auch unfixable kaputt. Und mit zunehmender Routingnutzung werden wir jede Woche so kaputteditierte Firmenglände, Flughäfen und co wie VEKA sehen weil irgendjemand versucht das irgendwie mit der brechstange hinzubiegen.

Flo

1 Like

Eventuell ist vielen nicht klar, was da im Hintergrund passiert. Das das eigentlich 2 unabhängige Programme sind, die involviert sind. Einmal der Geocoder, der die Text-Eingaben in Koordinaten umwandelt, und einmal die Routing-Engine, die diese Koordinaten verarbeitet.

Auf OSM wird wohl Nominatim: Veka, Sendenhorst verwendet, und bei mehreren Ergebnissen wird halt das erste genommen, das am besten passt.

Du kannst auch nach “VEKA AG, Sendenhorst” suchen. Dann kriegst du die Gesamtfläche.

Wenn du nur nach VEKA, Sendenhorst suchst bekommst du verschiedenes:

Screenshot from 2023-11-22 11-44-16

Man sehe auch die verschiedenen Schreibweisen, und extension von name tags mit beschreibendem soifz

Flo

1 Like

Man sieht ja an der Menge von “Lösungsmöglichkeiten” hier, dass das grundsätzliche Problem nicht von allen verstanden wurde. Die meisten Beiträge sind für mich irgendwie rumdoktorn und hoffen, dass das in diesem Einzelfall funktioniert. Du hast irgendwann/irgendwo mal “navaid” erwähnt. Kannst du das mal kurz genauer erläutern?

Hier ist u.a. ein Thread von 2019 auf tagging den ich gestartet habe.

https://www.mail-archive.com/tagging@openstreetmap.org/msg45128.html

Also - Die idee ist eine relation die im “gluecode” zwischen Geokodieren und Navigation hängt.

D.h. du suchst Nach A und bekommst eine Liste mit Zielen die eben nicht A sind - sondern was anderes.

Beispiel der return liste:

  1. transport: Car
    Realto Destination B, name Foo
  2. transport: Car
    Realto Destination C, name Bar
  3. transport: Foot
    Realto Destination D, name Realfootentrance

Das Problem ist das ein POI eben nicht umsonst ein POINT of interest ist. Es gibt kein Flächenrouting, schon gar nicht als Ziel - Du kannst nicht zu einer Fläche als Ziel routen. Einfach systemimmanent ist routing die “günstigste” (Kostenfunktion) Verbindung in einem Graphen zwischen Zwei Knoten A und B. MEHR macht eine routing software nicht. Also brauchen wir zwingend als Ziel B einen PUNKT.

Jetzt ist die Frage wie kommen wir zu dem PUNKT. Wir haben aktuell z.b. bei VEKA Flächen. Oder beim Flughagen München. Riesiges Sammelsorium von Flächen, Linien, Punkten mit Namen.

Mein Gedanke dazu ist eine “navaid” relation (Name ist doof - siehe thread - navaid ist ein stehender Begriff in der Fliegerei) - aber wir bleiben mal dabei:

type=navaid
modeoftransport=car/motor_vehicle/bus/hgv/delivery/foot/bicycle (Standard established access)
name=Navigation display
Zielobjekte (Multiple)  role=to
Realer Ziel Node (Nur einer) role=realto

Nehmen wir an es gibt 36 Abfertigungsrampen bei einer Spedition. Dann packst du die 36 Rampen, und das Firmengelände und weiss der Henker was in die relation als objekt mit der to role, und das Werkstor als realto=

name=VEKA Tor 1
modeoftransport=hgv;delivery
Object (name=Rampe 1)    role=to
Node (das Werkstor) role=realto

Du suchst nach VEKA - Bekommst das dingen in der liste - Dein Navi weiss du bist ein LKW und zeigt dir statt des Mittelpunktes des Firmengeländes gleich das Werkstor an.

Hier kommen wir auch endlich mal davon weg das bei großen Firmengeländen massiver “name tag abuse” betrieben wird indem jedes rolltor, jede Zufahrt mit beschreibenden Name tags versehen wird.

Tor 1 ist dann nicht “loc_ref=Tor 1” sondern name=“Röhrig Abwassertechnik LKW Zufahrt Tor 1” und davon haben wir dann so 10-20 und die karte ist vollgekleistert mit beschreiben name tags.

Auch modalwechsel sind dann möglich. D.h. am Beispiel Centro Oberhausen.

Du nimmst dein Navi und suchst nach dem Centro Oberhausen. Du bekommst die Liste der Parkplätze. Navigierst einen an. Dann steigst du aus und dein Navi ändert die Modaliät d.h. jetzt “foot” und in der liste sind neben den modeoftransport=car auch modeoftransport=foot mit drin. Und schon kriegst du beim aussteigen eine neue route (obwohl du dein ziel erreicht hast) die dich via foot bis zum Eingang leitet.

Was noch fehlt ist sowas wie “Equivalence” also nehmen wir an du hast eine große Firma und die hat 20 Personaleingänge die du nur als Fußgänger benutzen kannst. Dann willst du mehr als einen Personaleingang aber eben den nächstgelegenen. Also mehrere realto= die equivalent sind, aber anhand der Distanz selektiert werden sollen. (Auch z.b. bei Nationalparks in den USA)

Eine Möglichkeit wäre in der relation mehrere “realto=” anzugeben (Was ich ungern machen würde) oder sowas wie “realto_alternate” als role. So das navis die das nicht supporten nur “realto” benutzen, und die die “on-the-fly” multiple distanzen errechnen können auch die alternates supporten.

Also - jede menge room for improvement. Wichtig ist das wir eine möglichkeit des expliziten taggings des Zielnodes für eine Destination und Modalität brauchen. Alles andere ist murks und wird immer wieder zu Problemen führen. Ja - Jedes individuelle Problem kann man durch rumfaken und frisieren an den Daten dazu bekommen “halbwegs” zu funktionieren. Aber mit sauberen Daten hat DAS dann wenig zu tun.

Flo

1 Like

Das sind 2 typische Anwendungsfälle (Firmengelände und Flughafen), die jeweils eine eigene spezifische Lösung (im Geocoder) benötigen, um “gut” zu funktionieren. Bei einer Firma könnte man sehen, ob eine Rezeption gemappt ist, oder ob definiert ist, wo die LKW-Anlieferung ist, oder welche Tore (Nummern / Namen) Teil des Umrisses sind. Bei einem Flughafen sollte man sehen, welche Terminals es gibt, und wo deren Eingänge sind, und evtl. auch Parkmöglichkeiten aufzeigen (ok, das wird immer komplexer, will man Kurzzeitparken oder die Karre die Reise über dort stehen lassen, wieviel mehr will man dafür bezahlen dass man kürzere Wege bekommt, etc., unwahrscheinlich, dass wir das demnächst hinbekommen). D.h. fürs Routing wäre es vermutlich in beiden Fällen das Beste, in einem 2. Schritt nachzufragen, wo genau. Diese “navaids” müsste man nach Deinem Vorschlag alle explizit angeben (klingt nach viel Arbeit, halte ich aber für denkbar dass es trotzdem gemacht werden würde, wir taggen ja auch turn-restriction-Relationen anstatt einfach auf der Straße ein Attribut durchgezogene Linie anzugeben :slight_smile: ).

Hab mir jetzt den ganzen Thread von damals durchgelesen. Deine Idee ist so schlecht nicht, damit könnte ich mich anfreunden. Ich sehe da nur ein Problem: Es ist nicht einfach zu handhaben und würde eine Menge Leute vor Probleme stellen, sowas zu erfassen. Viele Mitwirkende wollen “schöne Karten” und denken nicht ans Routing. Das ist ja auch zulässig (obwohl ich mir das anders wünschen würde).

Man bräuchte wohl einen guten Relationseditor, um die Akzeptanz herzustellen…

@dooley und @flohoff es wäre schön, wenn Ihr die grundsätzlichen Probleme und den Lösungsansatz in einem eigenen Thema (oder einem alten, wo dies bereits angefangen wurde) weiter diskutiert. Ich finde den navaid-Ansatz auch prima, aber er exisitiert im Moment noch nicht praktisch (ist nicht im OSM-Ökosystem implementiert) und ist daher keine kurzfristige Lösung für das hier diskutierte konkrete Problem.

PS:OSM ist bereits jetzt dreimal besser als Google Maps