A navigation system, the system comprising: at least one sensor configured to acquire current image data of the environment containing the navigation system; a memory unit configured to store executable instructions and a prior map of the environment, wherein the prior map represents the environment containing the navigation system independently of data currently acquired by the at least one sensor; and a processing unit configured to execute the executable instructions, wherein the executable instructions direct the processing unit to: extract a first plurality of features from the current image data; extract a second plurality of features from the prior map; compare two-dimensional representations of the first plurality of features to two- dimensional representations of the second plurality of features to find at least one first feature in the first plurality of features that associate with at least one second feature in the second plurality of features; characterised in that the processing unit is further configured to: compare a three-dimensional representation of the at least one first feature to a three-dimensional representation of the at least one second feature to identify at least one corresponding pair of features estimate a navigation solution, wherein, when corresponding features have been identified, the processing unit 106 is configured to calculate the difference between a feature location in the image acquired by the image sensor 104 and a predicted location of the feature based on the three-dimensional location of the feature stored in the prior map 110 and the estimated navigation solution and update the estimated navigation solution based on the calculated difference. at least one sensor configured to acquire current image data of the environment containing the navigation system; a memory unit configured to store executable instructions and a prior map of the environment, wherein the prior map represents the environment containing the navigation system independently of data currently acquired by the at least one sensor; and a processing unit configured to execute the executable instructions, wherein the executable instructions direct the processing unit to: extract a first plurality of features from the current image data; extract a second plurality of features from the prior map; compare two-dimensional representations of the first plurality of features to two- dimensional representations of the second plurality of features to find at least one first feature in the first plurality of features that associate with at least one second feature in the second plurality of features; characterised in that the processing unit is further configured to: compare a three-dimensional representation of the at least one first feature to a three-dimensional representation of the at least one second feature to identify at least one corresponding pair of features estimate a navigation solution, wherein, when corresponding features have been identified, the processing unit 106 is configured to calculate the difference between a feature location in the image acquired by the image sensor 104 and a predicted location of the feature based on the three-dimensional location of the feature stored in the prior map 110 and the estimated navigation solution and update the estimated navigation solution based on the calculated difference. extract a first plurality of features from the current image data; extract a second plurality of features from the prior map; compare two-dimensional representations of the first plurality of features to two- dimensional representations of the second plurality of features to find at least one first feature in the first plurality of features that associate with at least one second feature in the second plurality of features; characterised in that the processing unit is further configured to: compare a three-dimensional representation of the at least one first feature to a three-dimensional representation of the at least one second feature to identify at least one corresponding pair of features estimate a navigation solution, wherein, when corresponding features have been identified, the processing unit 106 is configured to calculate the difference between a feature location in the image acquired by the image sensor 104 and a predicted location of the feature based on the three-dimensional location of the feature stored in the prior map 110 and the estimated navigation solution and update the estimated navigation solution based on the calculated difference. compare a three-dimensional representation of the at least one first feature to a three-dimensional representation of the at least one second feature to identify at least one corresponding pair of features estimate a navigation solution, wherein, when corresponding features have been identified, the processing unit 106 is configured to calculate the difference between a feature location in the image acquired by the image sensor 104 and a predicted location of the feature based on the three-dimensional location of the feature stored in the prior map 110 and the estimated navigation solution and update the estimated navigation solution based on the calculated difference.