1. A method for determining a location and orientation in an environment, comprising, a processor for performing steps of the method, comprising the steps of: acquiring a set of one or more real omni-directional images of an unknown skyline in the environment from an unknown location and an unknown orientation in the environment by an omni-directional camera; synthesizing a set of virtual omni-directional images from a 3D model of the environment, wherein each virtual omni-directional image is associated with a known skyline, a known location and a known orientation; and comparing each real omni-directional image with each virtual omni-directional images to determine a best matching virtual omni-directional image with the associated known location and known orientation that correspond to the unknown location and orientation, wherein the steps are performed in a processor.