06.08.2019, 18:36
(05.08.2019, 12:11)routeconverter Wrote: Eine Frage aus Neugier: Warum hast Du in DownloadableFinder nicht
public Downloadable getDownloadableFor(BoundingBox routeBoundingBox)
auf eine Liste von Downloadable aufgebohrt?
Weil ich das erst mal als Option neben dran stehen haben wollte (ggf. das als zweite Option sogar konfigurierbar mach).
Man könnte der Methode einen Parameter für die Länge des Resultats zu geben und wenn man sie auf 1 zwingt hat sie quasi deine Signatur und Semantik und die eigentliche Selektion könnte man dann noch von diesem RoutingTileInfo in einen Comparator ziehen, dann sieht man dort wirklich welche Strategie implementiert wird für das Karten-Suchen.
(05.08.2019, 12:11)routeconverter Wrote:(04.08.2019, 06:59)thomas.friese Wrote: Von der Idee her: was kann da systematisch schief gehen, wenn ich fireDownloading() und downloadAndWait() im Error-Handling für ggf. response Errors in der GraphHopper.getRouteBetween() Funktion aufrufe?
Man erwartet es nicht. GraphHopper#getRouteBetween() sollte keine Fehlerbehandlung und Notifications machen sondern nur ein Routing durchführen.
Schon, aber du hast da ohnehin ein Error-Handling, was eben die Exception weiter wirft, genau an der Stelle muss man ja intervenieren weil der GraphHopper selbst seinen Fehler so signalisiert.
Ich stimme dir gefühlsmäßig vollkommen zu, man müsste eigentlich dann aber vermutlich drumherum noch weitergehend aufräumen und schon in den Interfaces und dem ganzen Flow drumherum diese Möglichkeit vorsehen, dass das Routing schief geht und man es noch mal probieren sollte mit der zweitbesten Karte usw.. Dabei würde man auch die Timer gescheit aufräumen etc. ... für den Proof of Concept hab ich das jetzt nicht gemacht.
(05.08.2019, 12:11)routeconverter Wrote: Schwierig finde ich
private List<Downloadable> routingTileInfoList;
Denn eigentlich sollte doch
private java.io.File osmPbfFile;
auf eine Liste aufgebohrt werden, oder?
Ja, im Prinzip schon, auch hier aber wieder: ich wollte nix aufbohren sondern einen parallelen Pfad einziehen, den ich zum Vergleich an und aus schalten kann - nächster Schritt wäre eh mal einen Test schreiben der bei deinem aktuellen Code mit dem bekannten Fehler failed, mein Code aber erfüllt. Danach würde ich es dann sauber einbauen.
Außerdem hab ich befürchtet, dass du das osmPbFile wie ein Flag verwendest, weil du es mal explizit auf null setzt.
