Hi. I am deploying my own GH server and I would like it to answer both fastest and shortest route requests in speed mode. My understanding is that speed mode means that a contracted hierarchy graph must be build.

(1) Why aren’t there edges_ch_shortest and edges_ch_fastest and so on?
(2) is my understanding correct, that addWeighting(..) specifies which CH graphs to build and consequently which types of requests my graph hopper instance can handle?

regardig (1): which files belong to the CH graph? It seems that they are only the shortcuts_<mode>_<vehicle> and nodes_<mode>_<vehicle> files. A CH graph doesn’t have its own edges file (other than shortcuts). My question just shows that I don’t have any deep understanding of what is going on. My current understanding is that graph hopper creates a routing graph, the edges and nodes files, from eg a osm file hopper.setDataReaderFile("<city>.osm.pbf"); The CH graph speeds up queries (hence enables the speed mode) by sorting nodes and adding shortcut edges. Is that correct? What are location_index and geometry about?

regarding (2): addWeighting(..) suggested to me that I could “merge” or “mix” weightings whereas my understanding now is that I simply tell hopper which CH graphs to build.

regarding ShortFastestWeighting: I am very curious to know why? I have found the routing/weighting directory and am looking at the different implementations of the calcWeight method. The ShortestWeighting uses only distance while in ShortFastestWeighting is a weighted sum of time and distance, right?

I have tested some (inner city) queries with fastest and shortest and the results suggested that often the same route is computed. This may of course be very different for queries between cities…