In some examples, a method of determining a shortest path between two locations comprises receiving, by a first device, a first graph representing a graph network comprising multiple regions, wherein each region comprising multiple vertices and
multiple edges, identifying each of the multiple regions, and transmitting the first graph to a
mobile device, partitioning, by the first device, the first
graph based on the identified multiple regions to thereby generate a set of partitioned graphs, wherein each of the identified multiple regions corresponds to a respective partitioned graph from the set of partitioned graphs, generating, by the first device, a second graph, wherein the second graph defines comprises the set of partitioned graphs and information defining
connectivity among the set of partitioned graphs, and transmitting the second graph to a
mobile device, traversing, by the
mobile device, the second graph to determine a high-level path comprising multiple shortcuts representing the edges of the
multiple edges of the first graph that connect a first vertex and a second vertex, determining, by the mobile device, a shortest path between the first vertex and the second vertex, wherein the shortest path is determined based on the high-level path, wherein the shortest path comprises the edges of the
multiple edges of the first graph that connect the first vertex and the second vertex, and outputting, by the mobile device, the shortest path.