A client apparatus (200, 114) comprising at least one processor and at least one memory including computer program code, the at least one memory and computer program code configured to, with the processor, cause the apparatus to at least: send a routing request for a route between an origin and a destination to a server, wherein the server identifies a start road segment corresponding to the origin and an end road segment corresponding to the destination; receive a number N, equal or above one, of intermediate segment anchor points for the requested route between the origin and the destination from the server, wherein each intermediate segment anchor point is a point falling at some position within a respective intermediate road segment; receive N+1 encoded server-provided route fragments of the requested route, wherein the N+1 route fragments comprise routes between, but not including, every pair of consecutive road segments from the following group of road segments: the start road segment, the N intermediate road segments, and the end road segment, wherein each route fragment comprises a plurality of road segments associated with a respective plurality of link identifiers, and wherein each route fragment is encoded by sequentially applying a bit-wise XOR function to the plurality of link identifiers to create one fingerprint identifier for the respective route fragment; identify N intermediate road segments corresponding to the N intermediate segment anchor points; generate a route between the origin and the destination, the route comprising the N intermediate road segments and a plurality of client-generated route fragments, each client-generated route fragment including one or more client-generated route fragment road segments; encode each client-generated route fragment by sequentially applying a bit-wise XOR function to the link identifiers of all the client-generated route fragment road segments of the respective client-generated route fragment; compare the encoded client-generated route fragments to the encoded server-provided route fragments; and provide navigational assistance for traveling along the route in response to the encoded client-generated route fragments corresponding with the encoded server-provided route fragments. send a routing request for a route between an origin and a destination to a server, wherein the server identifies a start road segment corresponding to the origin and an end road segment corresponding to the destination; receive a number N, equal or above one, of intermediate segment anchor points for the requested route between the origin and the destination from the server, wherein each intermediate segment anchor point is a point falling at some position within a respective intermediate road segment; receive N+1 encoded server-provided route fragments of the requested route, wherein the N+1 route fragments comprise routes between, but not including, every pair of consecutive road segments from the following group of road segments: the start road segment, the N intermediate road segments, and the end road segment, wherein each route fragment comprises a plurality of road segments associated with a respective plurality of link identifiers, and wherein each route fragment is encoded by sequentially applying a bit-wise XOR function to the plurality of link identifiers to create one fingerprint identifier for the respective route fragment; wherein the N+1 route fragments comprise routes between, but not including, every pair of consecutive road segments from the following group of road segments: the start road segment, the N intermediate road segments, and the end road segment, wherein each route fragment comprises a plurality of road segments associated with a respective plurality of link identifiers, and wherein each route fragment is encoded by sequentially applying a bit-wise XOR function to the plurality of link identifiers to create one fingerprint identifier for the respective route fragment; identify N intermediate road segments corresponding to the N intermediate segment anchor points; generate a route between the origin and the destination, the route comprising the N intermediate road segments and a plurality of client-generated route fragments, each client-generated route fragment including one or more client-generated route fragment road segments; encode each client-generated route fragment by sequentially applying a bit-wise XOR function to the link identifiers of all the client-generated route fragment road segments of the respective client-generated route fragment; compare the encoded client-generated route fragments to the encoded server-provided route fragments; and provide navigational assistance for traveling along the route in response to the encoded client-generated route fragments corresponding with the encoded server-provided route fragments.