1. A method of unsupervised indoor localization, the method comprising: estimating a location of a user within an indoor environment, wherein estimating the location of the user comprises: estimating a movement trace of the user within the indoor environment using first sensor data obtained from at least one sensor, wherein the first sensor data comprises accelerometer data; and identifying at least one landmark within the indoor environment using second sensor data obtained from the at least one sensor; wherein estimating the movement trace of the user comprises: estimating a number of steps taken by the user over a first period of time by analyzing the accelerometer data; estimating a distance traveled by the user during the first period of time by multiplying the number of steps with an estimated step size; estimating a heading direction of the user; and calculating a movement trace vector based on the distance traveled and the heading direction.