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 real omni-directional image of an unknown skyline in the environment from an unknown location and unknown orientation in the environment; 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 the 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 orientation that correspond to the unknown location and orientation.