-
Notifications
You must be signed in to change notification settings - Fork 57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(routing): upgrade to GraphHopper 8.0 #363
Conversation
Signed-off-by: Karl Schrab <[email protected]>
Signed-off-by: Karl Schrab <[email protected]>
Signed-off-by: Karl Schrab <[email protected]>
Signed-off-by: Karl Schrab <[email protected]>
…ightingFactory Signed-off-by: Karl Schrab <[email protected]>
Signed-off-by: Karl Schrab <[email protected]>
Signed-off-by: Karl Schrab <[email protected]>
Signed-off-by: Karl Schrab <[email protected]>
…HopperRouting instead Signed-off-by: Karl Schrab <[email protected]>
Signed-off-by: Karl Schrab <[email protected]>
Signed-off-by: Karl Schrab <[email protected]>
… utils Signed-off-by: Karl Schrab <[email protected]>
…afficgen Signed-off-by: Karl Schrab <[email protected]>
# Conflicts: # lib/mosaic-routing/src/main/java/org/eclipse/mosaic/lib/routing/graphhopper/GraphHopperRouting.java
cutting decimal places
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some remarks.
lib/mosaic-routing/src/main/java/org/eclipse/mosaic/lib/routing/CandidateRoute.java
Show resolved
Hide resolved
lib/mosaic-routing/src/test/java/org/eclipse/mosaic/lib/routing/CharlottenburgRoutingTest.java
Outdated
Show resolved
Hide resolved
lib/mosaic-routing/src/main/java/org/eclipse/mosaic/lib/routing/database/DatabaseRouting.java
Outdated
Show resolved
Hide resolved
lib/mosaic-routing/src/main/java/org/eclipse/mosaic/lib/routing/CandidateRoute.java
Show resolved
Hide resolved
...c-routing/src/main/java/org/eclipse/mosaic/lib/routing/graphhopper/util/VehicleEncoding.java
Show resolved
Hide resolved
...routing/src/main/java/org/eclipse/mosaic/lib/routing/graphhopper/util/TurnCostsProvider.java
Outdated
Show resolved
Hide resolved
...g/src/test/java/org/eclipse/mosaic/lib/routing/graphhopper/util/DatabaseGraphLoaderTest.java
Show resolved
Hide resolved
...-routing/src/test/java/org/eclipse/mosaic/lib/routing/graphhopper/GraphHopperMosaicTest.java
Show resolved
Hide resolved
.../test/java/org/eclipse/mosaic/lib/routing/graphhopper/algorithm/CamvitChoiceRoutingTest.java
Show resolved
Hide resolved
} | ||
|
||
/** | ||
* @return the list of connection ids forming this route. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think these type of javadocs leads to spotbugs warnings, as the actual documentation is missing.
Personally, I think the documentation for getters should either be really verbose (like the member variable) or none.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In this particular case I'd need the documentation at the getters, since the user wants to know what the offset is doing. However, for getters I find it personally more useful to fill @return
and leave the description blank, as this would be the same text. I'd rather adjust our checkstyle...
@@ -0,0 +1,159 @@ | |||
/* | |||
* Copyright (c) 2020 Fraunhofer FOKUS and others. All rights reserved. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we have to adjust this year, as this file is marked as "new"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No we don't have to do this.
@@ -0,0 +1,128 @@ | |||
/* | |||
* Copyright (c) 2020 Fraunhofer FOKUS and others. All rights reserved. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we have to adjust this year, as this file is marked as "new"?
Description
0.13.0
(2019) to latest release8.0
.QueryResult
->Snap
)FlagEncoder
has been removed completely, and was replaced by a collection ofEncodedValue
classes. TheFlagEncoder
previously just read one or more integer flags from an edge and encoded/decoded information, such as allowed speed or the waytype. Now, we must use anEncodedValue
implementation for every aspect. For example,VehcileSpeed
orVehicleAccess
, which exist for encoding the average speed and the access to use a certain edge. For each vehicle type (here called profile, e.g. "car", or "bike"), individual instances of theseEncodedValue
types exist. This lead to a rather large refactoring, but could be solved by adding a newVehicleEncoding
class which just bundles these individualEncodedValue
types needed for a profile/vehicle.GraphHopper
implementation (which serves as an API end point), and secondly, inGraphHopperRouting
which implements the the mosaic-routing API.I removed the implementation inI removed the implementationExtendedGraphHopper
and kept only the one inGraphHopperRouting
. ThereforeExtendedGraphHopper
currently only replaces the import mechanism of theGraphHopper
implementation to create the routing graph from a mosaic database.ExtendedGraphHopper
completely and moved everything related to graph loading toGraphHopperRouting
, having one entry point.AbstractCamvitChoiceRouting
have been removed. With the current release, GraphHopper already comes with plateau based algorithms to search for alternative routes. These are more or less based on the Camvit Choice Routing algorithm and therefore expect to produce similar results. To avoid a complicated migration of our own implementations, we use the provided ones for now.Issue(s) related to this PR
Affected parts of the online documentation
Changes in the documentation required?
No
Definition of Done
Prerequisites
Required
type(scope): description
(in the style of Conventional Commits)enhancement
, orbugfix
)origin/main
has been merged into your Fork.Requested (can be enforced by maintainers)
Special notes to reviewer