1. A method of determining a floor and location of a device within an indoor space having multiple floors, the device having a processor and a memory, the method comprising: gathering, using the processor and the memory, device Wi-Fi data and device Bluetooth data, the Wi-Fi and Bluetooth data including respective Wi-Fi and Bluetooth received signal strength measured values; determining at least one candidate location of the device for each floor of the multiple floors of the indoor space based at least on the device Wi-Fi data and the device Bluetooth data; determining a most likely location of the device for each floor by combining the at least one candidate location for each floor with step module data and anticipation module data; and determining the floor and location of the device from the most likely location of the device for each floor and the device movement history.