1. A method of constructing a three-dimensional map of an environment, comprising: by a laser scanner, moving about an environment and collecting scan line data from a plurality of scans of the environment, wherein each of the scans comprises one or more scan lines, each returning a data value indicating a distance between the laser scanner and a point on a surface of a structure in the environment; by at least one other sensor, moving about the environment with the laser scanner and collecting additional sensor data corresponding to the environment; and by a processor: obtaining the scan line data from the laser scanner, extracting one or more feature points from the scan line data, and developing a laser scanner-based odometry from the feature points, obtaining the additional sensor data from the at least one other sensor, developing an additional odometry of the environment from the additional sensor data, analyzing the feature points and the additional sensor data to detect a plurality of landmarks in the environment, each landmark comprising one or more features, performing sensor fusion to supplement the laser scanner-based odometry with the additional odometry to develop a three-dimensional map of the environment using an iterative closest point (ICP) algorithm to estimate a change in position of the laser scanner based on the scan line data and the plurality of landmarks, wherein estimating the change in position comprises: for each instance of the scans of the laser scanner, identifying a window that comprises scan lines from one or more scans occurring immediately before or after the instance of the scan; identifying a plurality of matching points from the one or more feature points extracted from the scan line data corresponding to one or more scans occurring immediately before or after the instance of the scan; adjusting the number of matching points based on a distance of the laser scanner to each of the plurality of matching points; and using an Extended Kalman Filter (EKF) to estimate the change in position of the laser scanner based on the adjusted number of matching points, and saving the three-dimensional map to a memory device.