A computer-implemented method of calculating a path between a starting point and a destination point of a cartographic road map stored on a storage substrate readable by a computer, and passing through at least one predetermined intermediate waypoint (WP k), the path being defined by a series of contiguous elemental sections (s ij) in which each section joins a transit node (n ij) to an adjacent transit node (n i j+1), the starting and destination points and the intermediate waypoints (L, D, WP k) constituting a set of points defining the desired path, wherein at least a forward partial path originating from the starting point and a backward partial path originating from the destination point are calculated, and a complete path between the starting point and the destination point is obtained by joining the forward partial path (P i,f) and the backward partial path (P i,b) which meet at an intersection node, characterized in that it comprises: - defining a respective surrounding area (A k) for each preset intermediate waypoint (WP k), - calculating from the starting point a plurality of forward partial paths (P i,f) directed towards a provisional target point represented by a preset intermediate waypoint (WP k), - calculating from the destination point a plurality of backward partial paths (P i,b) directed towards a provisional target point represented by a preset intermediate waypoint (WP k'), and - when at least one transit node (n ij) in the defined surrounding area (A k) of a provisional target point (WP k; WP k') has been reached, diverting the partial paths (P i,f, P i,b) headed for said provisional target point (WP k; WP k') towards a next path-defining point (WP k+1) according to a predetermined order of travel, if the partial path is a forward path (P i,f), or towards a preceding path-defining point (WP k'-1) according to the predetermined order of travel, if the partial path is a backward path (P i,b), wherein the defined surrounding area (A k) is established as a circular area of a radius (R k) which is equal to a predetermined fraction of the minimum among the theoretical distance of the intermediate waypoint (WP k) from a preceding path-defining point (L; WP k-1), and from a next path-defining point (D; WP k+1); the method further comprising obtaining a plurality of complete paths (P i) by the joining of a respective forward partial path (P i,f) and a respective backward partial path (P i,b) which meet at a respective intersection node, and selecting an optimal complete path on the basis of at least one predetermined criterion, wherein said predetermined criterion comprises the calculation of a cost function, and wherein said cost function is calculated on the basis of scores assigned in accordance with a predetermined rule and penalties attributed to the complete path solutions that are outside the defined surrounding areas (A k) of the intermediate waypoints (WP k). - defining a respective surrounding area (A k) for each preset intermediate waypoint (WP k), - calculating from the starting point a plurality of forward partial paths (P i,f) directed towards a provisional target point represented by a preset intermediate waypoint (WP k), - calculating from the destination point a plurality of backward partial paths (P i,b) directed towards a provisional target point represented by a preset intermediate waypoint (WP k'), and - when at least one transit node (n ij) in the defined surrounding area (A k) of a provisional target point (WP k; WP k') has been reached, diverting the partial paths (P i,f, P i,b) headed for said provisional target point (WP k; WP k') towards a next path-defining point (WP k+1) according to a predetermined order of travel, if the partial path is a forward path (P i,f), or towards a preceding path-defining point (WP k'-1) according to the predetermined order of travel, if the partial path is a backward path (P i,b),