A method of matching a current position of a device to an electronic map indicative of a network of navigable elements within a geographic area, the electronic map comprising a plurality of segments representative of the navigable elements, the method comprising: obtaining positional data indicative of the movement of the device, the positional data comprising a plurality of position data samples indicative of the position of the device at different times; obtaining electronic map data in respect of at least a portion of the area covered by the electronic map; and maintaining a pool of candidate paths with respect to the electronic map, each candidate path being a possible path through the electronic map to which the current position of the device may be matched, each candidate path comprising one or more segments of the electronic map, wherein said maintaining further comprises updating the pool of candidate paths by expanding one or more of the candidate paths to provide an expanded candidate path including at least a segment connected to the segment providing a head end of the original candidate path and adding the expanded candidate path to the pool of candidate paths; wherein the method further comprises: identifying a candidate path from the pool which provides the best match to the positional data, based on a plurality of said position data samples; using the identified candidate path in obtaining an estimated current position of the device with respect to a segment of the electronic map for output as the map matched current position; and generating data indicative of the map matched current position. obtaining positional data indicative of the movement of the device, the positional data comprising a plurality of position data samples indicative of the position of the device at different times; obtaining electronic map data in respect of at least a portion of the area covered by the electronic map; and maintaining a pool of candidate paths with respect to the electronic map, each candidate path being a possible path through the electronic map to which the current position of the device may be matched, each candidate path comprising one or more segments of the electronic map, wherein said maintaining further comprises updating the pool of candidate paths by expanding one or more of the candidate paths to provide an expanded candidate path including at least a segment connected to the segment providing a head end of the original candidate path and adding the expanded candidate path to the pool of candidate paths; wherein the method further comprises: identifying a candidate path from the pool which provides the best match to the positional data, based on a plurality of said position data samples; using the identified candidate path in obtaining an estimated current position of the device with respect to a segment of the electronic map for output as the map matched current position; and generating data indicative of the map matched current position. identifying a candidate path from the pool which provides the best match to the positional data, based on a plurality of said position data samples; using the identified candidate path in obtaining an estimated current position of the device with respect to a segment of the electronic map for output as the map matched current position; and generating data indicative of the map matched current position.