1. A method for navigation of an unmanned aerial vehicle in an urban environment, the method comprising: capturing a first set of Global Positioning System (GPS)-tagged images in an initial fly-over of the urban environment at a first altitude, with each of the GPS-tagged images being related to respective GPS-aided positions; stitching the captured GPS-tagged images together into an image mosaic using the GPS-aided positions; capturing a second set of images in a subsequent fly-over of the urban environment at a second altitude that is lower than the first altitude; matching image features from the second set of images with image features from the image mosaic during the subsequent fly-over; and calculating a current position of the unmanned aerial vehicle relative to the GPS-aided positions based on the matched image features from the second set of images and the image mosaic.