A method for determining a reachable area based on a road network, comprising: (i) acquiring a current location of a user and a road network map; (ii) generating a road node map based on the road network map; (iii) determining first and second initial road nodes (v1, v2) of a road closest to the current location, the first and second initial road nodes denoting end points at opposite ends of the road; (iv) searching for road nodes (v3, v4) adjacent to the first initial road node and road nodes (v5, v6) adjacent to the second initial road node; (v) for each adjacent road node: determining the shortest path from said adjacent road node to the current location of the user; f when the length of the shortest path from said adjacent road node to the current location is longer than a maximum travel distance, determining a boundary point (a, b, c) on the shortest path extending for the maximum travel distance from the current location of the user; and when the length of the shortest path from said adjacent road node to the current location is shorter than the maximum travel distance, searching for a further adjacent road node which is adjacent to said adjacent road node and has not been accessed, and checking the length of the shortest path from the further adjacent road node to the current location of the user, or using said adjacent road node as a boundary point on the shortest path when there are no further adjacent road nodes which are adjacent to said adjacent road node and which have not been accessed; (vi) repeating (v) for each further adjacent road node until the lengths of the shortest paths from all searched adjacent road nodes to the current location of the user all exceed the maximum travel distance; and (vii) determining a reachable area based on the determined boundary point(s). (i) acquiring a current location of a user and a road network map; (ii) generating a road node map based on the road network map; (iii) determining first and second initial road nodes (v1, v2) of a road closest to the current location, the first and second initial road nodes denoting end points at opposite ends of the road; (iv) searching for road nodes (v3, v4) adjacent to the first initial road node and road nodes (v5, v6) adjacent to the second initial road node; (v) for each adjacent road node: determining the shortest path from said adjacent road node to the current location of the user; f when the length of the shortest path from said adjacent road node to the current location is longer than a maximum travel distance, determining a boundary point (a, b, c) on the shortest path extending for the maximum travel distance from the current location of the user; and when the length of the shortest path from said adjacent road node to the current location is shorter than the maximum travel distance, searching for a further adjacent road node which is adjacent to said adjacent road node and has not been accessed, and checking the length of the shortest path from the further adjacent road node to the current location of the user, or using said adjacent road node as a boundary point on the shortest path when there are no further adjacent road nodes which are adjacent to said adjacent road node and which have not been accessed; determining the shortest path from said adjacent road node to the current location of the user; f when the length of the shortest path from said adjacent road node to the current location is longer than a maximum travel distance, determining a boundary point (a, b, c) on the shortest path extending for the maximum travel distance from the current location of the user; and when the length of the shortest path from said adjacent road node to the current location is shorter than the maximum travel distance, searching for a further adjacent road node which is adjacent to said adjacent road node and has not been accessed, and checking the length of the shortest path from the further adjacent road node to the current location of the user, or using said adjacent road node as a boundary point on the shortest path when there are no further adjacent road nodes which are adjacent to said adjacent road node and which have not been accessed; (vi) repeating (v) for each further adjacent road node until the lengths of the shortest paths from all searched adjacent road nodes to the current location of the user all exceed the maximum travel distance; and (vii) determining a reachable area based on the determined boundary point(s).