1. A method of determining a position of a device, comprising: gathering at least one of device signal data and device sensor data, the device signal data including at least one wireless communication signal data, the device sensor data including at least one of magnetometer data, accelerometer data and gyroscope data; estimating a plurality of potential trajectories describing a movement of the device as a sequence of positions based on the at least one of the device signal data and the device sensor data, a calibrated fingerprint map, and by determining, from the device sensor data, a device direction of travel angle corrected for at least one of a device sensor drift and a device sensor bias factors using a misalignment matrix, wherein the fingerprint map comprises a plurality of fingerprint locations having at least one of associated device signal data values and device sensor data values synchronized for differing data gathering intervals; and determining the position of the device based on a data fusion of the estimated plurality of potential trajectories, the data fusion producing at least a best estimate current trajectory from the estimated plurality of potential trajectories.