1. A mobile device, comprising: a processor; a wireless transceiver; at least one location sensor comprising a global navigation satellite system (GNSS) receiver, the wireless transceiver, an infrared transceiver, an ultrasonic transceiver or a near-field communication (NFC) receiver, or one or more pedestrian dead reckoning (PDR) sensors, or any combination thereof; and memory comprising a floor-plan of a venue, wherein the processor is configured to: obtain multiple location data sets representing respective different instants from the at least one location sensor of the mobile device; obtain a plurality of obstacle indication values, wherein each of the plurality of obstacle indication values, for each of the multiple location data sets, is derived from the floor-plan; determine a plurality of hypothetical locations of the mobile device in the venue based on the multiple location data sets; and determine a current location of the mobile device based on the plurality of hypothetical locations and the plurality of obstacle indication values; wherein the plurality of obstacle indication values for the multiple location data sets include: respective mean-free-path (MFP) scores, determined based on the floor-plan, for the plurality of hypothetical locations, each MFP score including a respective measure of proximity of at least some of obstacles in the floor-plan to a respective hypothetical location, or cardinal axes data describing respective cardinal axes in a portion of the floor-plan corresponding to the respective ones of the multiple location data sets, the cardinal axes being approximately parallel to, or perpendicular to, at least one edge of at least one obstacle in the portion of the floor-plan.