... the user friendly GPS tool


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
GraphHopper Routing Exception
#6
(02.08.2019, 10:30)routeconverter Wrote:     @Test
    public void testSelectOnlyCenterFileIfItCoversTheRoute()

ist scheinbar nicht ausreichend, um Deinen Fehler zu vermeiden.

Ok, ich schaue mal ob ich einen Test hin bringe, der den Use-Case nachstellt und entsprechend aktuell scheitert wird etwas dauern.

Wo wir gerade bei scheitern sind:

meine aktuell drängendste Anwendung ist eine Route von Vancouver nach San Francisco, die Route setzen würde ich auf einem Level wo der Downloader Bundesstaaten-Level Karten verwendet. Da bin ich jetzt auf folgende Weise auf die Nase geflogen:

Route von Vancouver aus geplant - also mit British Columbia Karte, beim Übergang nach Washington flog die Exception. Innerhalb Oregons konnte ich wieder planen.

Wenn ich mir die Bounding Boxes ansehe, sind die Folgendermaßen:

British Columbia:
longitude=-142.8716, latitude=60.00678
longitude=-114.049, latitude=45.385

Washington:
longitude=-126.7423, latitude=49.00708
longitude=-116.9145, latitude=45.54326

Der südlichste Punkt der Stateline zwischen Washington und Oregon verläuft in Portland irgendwo bei Latitude > 45.6 

D.h. weil ich ZUERST die British Columbia Karte gezogen hatte, hat praktisch jeder Routenpunkt in Washington state mit dieser Logik hier 

// choose the closest distance of centers but prefer covering existing files if closest distance means download
return existsFile(centerFile) || !existsFile(coveringFile) ? centerFile : coveringFile;

dazu geführt, dass British Columbia angezogen wird und NIEMALS Washington runter geladen wird. 

Workaround: British Columbia gelöscht, kurze Route in Washington geplant --> washington im lokalen Filesystem, DANACH neu von BC aus geplant --> british columbia im lokalen Filesystem und jetzt kann ich quasi seamless planen, übrigens tritt dann der Fehler auch am Übergang nicht mehr auf.

(1) Ich würde gern mal das Kartenmaterial ansehen - weil da die Bounding Box offenbar mehr verspricht als die Karten hergeben <- DAS halte ich für die Root-Cause des Problems aber ich habe Oberbayern mit JOSM nicht auf bekommen (keine Zeit und Out of Memory mit 16 GB auf dem Mac) 

Hast du nen Tip für ein Tool mit dem ich die Karten aufbekomme?

(2) Der Code heute verlässt sich ja quasi auf die Bounding Boxes, die scheinen aber falsche Freunde zu sein. Lösungsansätze:
 
a) lazy-download Strategie lassen: wenn ich immer weiter südlich gegangen wäre, hätte irgendwann das center(WA) näher an der Routen-Box gelegen als das center(BC) und er hätte die WA Karte angezogen und richtig weiter gemacht; weil BC WA quasi vollständig überlagert hatte ich keine Chance mehr das Auswählen und Laden der WA-Karte überhaupt zu triggern, nachdem ich die BC karten schon auf dem Rechner hatte

b) Leider löst a) noch nicht, dass es wohl Bereiche gibt, in denen die falsche Karte (covering + closest aber leider unvollständige Daten) <- das wäre der Oberbayern - Schwaben Testcase. 
Hier wäre eine Strategie: 


wenn route-call zu "point not found exception" mit Karten-Option A führt, dann fall-back 1: nächste Karten-Option Nachbar-Tile, und nochmal route-call, wenn wieder "point not found exception", dann fall-back 2nächstgrößere Karte verwenden und noch mal route-call

c) [Aufwändig, weniger Praktikabel, aktuell nur Theorie mit den Beobachtungen] 

- Kartendaten ansehen und ggf. fixen (also dafür sorgen, dass ALLE Daten innerhalb der Bounding Box auch da sind), oder 
- Bounding-Box Algorithmus anpassen, damit die Bounding Boxes verlässlich alle Daten enthalten die da sein sollten (?! wenn da nicht ein Bug in der Bounding Box ist würde ich ja vermuten, dass einfach die Daten "fehlerhaft" = nicht das volle Rechteck vorhanden sind)

Mich reizt es auch mal, mich etwas im Code orientieren um evtl. b) anzugehen, abgesehen von einen TestCase zu finden und die pbf Daten mal anzusehen
Reply


Messages In This Thread
RE: GraphHopper Routing Exception - by kumo - 01.08.2019, 14:11
RE: GraphHopper Routing Exception - by thomas.friese - 02.08.2019, 22:02

Forum Jump:


Users browsing this thread: 1 Guest(s)