A method comprising: estimating a first position of a mobile device within an indoor setting based on first communication signals, wherein the first communication signals are first Bluetooth Low Energy signals detected and provided by a plurality of BLE beacons positioned within the indoor setting; assigning a first set of particles to a number of respective first sampling locations within a threshold distance of the first position and assigning weights to the particles based on a distance between the first sampling locations and the estimated first position of the mobile device; estimating a new position by: adjusting the assignment of the first set of particles to second sampling locations based on movement of the mobile device; estimating a second position of the mobile device within the indoor setting by only averaging coordinates of the second sampling locations; repeatedly estimating the new position for a number of times (540; 550); and in response to determining that the number of times is equal to a threshold number of times and that a position of the mobile device is to be estimated using communication signals: estimating a third position of the mobile device within the indoor setting based on second communication signals, wherein the second communication signals are second BLE signals detected and provided by the plurality of BLE beacons; adjusting sampling weights of the first set of particles based on the distance between the third position and the second sampling locations; and creating a second set of particles based on the sampling weights (630; 640), the second set of particles corresponding to third sampling locations. estimating a first position of a mobile device within an indoor setting based on first communication signals, wherein the first communication signals are first Bluetooth Low Energy signals detected and provided by a plurality of BLE beacons positioned within the indoor setting; assigning a first set of particles to a number of respective first sampling locations within a threshold distance of the first position and assigning weights to the particles based on a distance between the first sampling locations and the estimated first position of the mobile device; estimating a new position by: adjusting the assignment of the first set of particles to second sampling locations based on movement of the mobile device; estimating a second position of the mobile device within the indoor setting by only averaging coordinates of the second sampling locations; repeatedly estimating the new position for a number of times (540; 550); and in response to determining that the number of times is equal to a threshold number of times and that a position of the mobile device is to be estimated using communication signals: estimating a third position of the mobile device within the indoor setting based on second communication signals, wherein the second communication signals are second BLE signals detected and provided by the plurality of BLE beacons; adjusting sampling weights of the first set of particles based on the distance between the third position and the second sampling locations; and creating a second set of particles based on the sampling weights (630; 640), the second set of particles corresponding to third sampling locations. adjusting the assignment of the first set of particles to second sampling locations based on movement of the mobile device; estimating a second position of the mobile device within the indoor setting by only averaging coordinates of the second sampling locations; repeatedly estimating the new position for a number of times (540; 550); and in response to determining that the number of times is equal to a threshold number of times and that a position of the mobile device is to be estimated using communication signals: estimating a third position of the mobile device within the indoor setting based on second communication signals, wherein the second communication signals are second BLE signals detected and provided by the plurality of BLE beacons; adjusting sampling weights of the first set of particles based on the distance between the third position and the second sampling locations; and creating a second set of particles based on the sampling weights (630; 640), the second set of particles corresponding to third sampling locations. estimating a third position of the mobile device within the indoor setting based on second communication signals, wherein the second communication signals are second BLE signals detected and provided by the plurality of BLE beacons; adjusting sampling weights of the first set of particles based on the distance between the third position and the second sampling locations; and creating a second set of particles based on the sampling weights (630; 640), the second set of particles corresponding to third sampling locations.