A method of geocoding an image of a location, the method comprising: directing an image sensor having a line of sight so that the line of sight intersects with a location and the image sensor senses the location; producing a sensed image in a two dimensional array of image pixels of the location sensed by the image sensor, the array of image pixels having rows and columns of the image pixels; obtaining geographic information for the location including obtaining longitude, latitude and elevation values in a two dimensional first array of location geocodes for the location, the first array comprising rows and columns of the location geocodes; associating the geographic information with the image pixels of the location including associating each location geocode in the two dimensional first array of location geocodes in a first association with an image pixel of the two dimensional array of image pixels; obtaining position and orientation information of the image sensor relative to the location, including obtaining latitude and longitude information, altitude information, compass heading information, and pitch and yaw information for the image sensor as the image sensor senses the location, determining the line of sight of the image sensor that intersects with the sensed location, and obtaining longitude and latitude information, and elevation information for a point where the line of sight of the image sensor intersects with the sensed location; using the position and orientation information of the image sensor to obtain the geographic information for the location; associating, in a second association, a two dimensional second array of image geocodes with the two dimensional array of image pixels, the second array of image geocodes having the same numbers of rows and columns of location geocodes as the array of image pixels has rows and columns of image pixels, and each image pixel being associated with exactly one image geocode value, both having in said second association the same row and column location in their respective arrays; and mapping each location geocode in the second array of image geocodes from a bottom row of the location geocodes through successive rows of the location geocodes across the second array of location geocodes to a top row of the location geocodes, to a respective first line of the image pixels through successive lines of the image pixels to a last line of the image pixels in the image pixel array. directing an image sensor having a line of sight so that the line of sight intersects with a location and the image sensor senses the location; producing a sensed image in a two dimensional array of image pixels of the location sensed by the image sensor, the array of image pixels having rows and columns of the image pixels; obtaining geographic information for the location including obtaining longitude, latitude and elevation values in a two dimensional first array of location geocodes for the location, the first array comprising rows and columns of the location geocodes; associating the geographic information with the image pixels of the location including associating each location geocode in the two dimensional first array of location geocodes in a first association with an image pixel of the two dimensional array of image pixels; obtaining position and orientation information of the image sensor relative to the location, including obtaining latitude and longitude information, altitude information, compass heading information, and pitch and yaw information for the image sensor as the image sensor senses the location, determining the line of sight of the image sensor that intersects with the sensed location, and obtaining longitude and latitude information, and elevation information for a point where the line of sight of the image sensor intersects with the sensed location; obtaining latitude and longitude information, altitude information, compass heading information, and pitch and yaw information for the image sensor as the image sensor senses the location, determining the line of sight of the image sensor that intersects with the sensed location, and obtaining longitude and latitude information, and elevation information for a point where the line of sight of the image sensor intersects with the sensed location; using the position and orientation information of the image sensor to obtain the geographic information for the location; associating, in a second association, a two dimensional second array of image geocodes with the two dimensional array of image pixels, the second array of image geocodes having the same numbers of rows and columns of location geocodes as the array of image pixels has rows and columns of image pixels, and each image pixel being associated with exactly one image geocode value, both having in said second association the same row and column location in their respective arrays; and mapping each location geocode in the second array of image geocodes from a bottom row of the location geocodes through successive rows of the location geocodes across the second array of location geocodes to a top row of the location geocodes, to a respective first line of the image pixels through successive lines of the image pixels to a last line of the image pixels in the image pixel array.